JavaでSCP

とりあえずやってみたってだけで、あってるかは不明。 ちゃんと使うには、もっと中身を覗いていかないとだめかも。 ライブラリ ganymed-ssh-2 というのを使ってみる。 https://code.google.com/p/ganymed-ssh-2/バージョンは(Mavenであがってた)262という…

Spring Batchでエラー時だけ特定の処理をする設定

こんな感じ? <batch:job id="testJob"> <batch:step id="test1"> <batch:tasklet ref="hogeTasklet" /> <batch:end on="*" /> <batch:next on="FAILED" to="errorStep" /> </batch:step> <batch:step id="errorStep"> <batch:tasklet ref="errorTasklet" /> </batch:tasklet></batch:step></batch:job>

ジェネリクスむずかしい

ちょっと悩んだメモ。 あくまでイメージコード public void hoge1(List list) { // List<List<? extends Serializable> では受け取れない List list2 = foo(list); } public void hoge2(List<String> list) { List<List<String>> list2 = foo(list); } public <T extends Serializable> void hoge3(List<T> list) { List</t></t></list<string></string></list<?>

riak-java-clientを使う

RiakにJavaからアクセスするためのライブラリ https://github.com/basho/riak-java-client をちょっと触ったのでメモ。 LowレベルとHighレベルの2種類のAPIがあるけど、今回は手軽に試せるHighレベルの方で。 つっこむデータの定義 アノテーションで色々指定…

ログ設定ファイルの環境変数での指定

いっつも忘れてぐぐるのでメモ。 Logback -Dlogback.configurationFile=・・・ Log4j2 -Dlog4j.configurationFile=・・・ Log4j -Dlog4j.configuration=・・・Log4j1と2で違うんかい

HiveのmetastoreにPostgreSQLを使う

とりあえず試しにやってみただけメモ。 よくわからずやってるので、無駄なものとかあるかも。 手順 PostgreSQLを入れて、よしなに設定する。 Hiveについてくるscripts/metastore/upgrade/hive-schema-x.x.x.postgres.sqlを流す。 hive/lib にPostgreSQLのJDB…

今が年の何週目か

ある日がその年の何週目かということについて。 というよりかは、年の1週目っていつよ?ってお話。 まずはISO8601の定義。 D は曜日を表し、月曜日が 1、日曜日は 7 である。 〜略〜 ある年における、「最初の木曜日を含む週が、その年の第1週である。」と規…

ライブラリとソース

とあるプロジェクトで、jarファイルにソースを紐付ける 別のプロジェクトで、上記プロジェクトと同じjarをパスを通す 勝手にソースも紐付けられる Eclipseすげーーーとなる Maven使えって???使えたらいいよねー・・・

ローカルキャッシュ

MyBatisで、同一トランザクション内で同じシーケンスから値を2回取得する ようなコードを書くと、同じ値が返されてしまう。サンプルはこんな感じ。 XML <select id="nextId" resultType="Long"> select nextval( #{name} ) as value </select> Java SqlSession session = ・・・; SequenceValue sequenceValu…

HandlerMappingを自動でやりたい

リクエストのパスに対応するControllerを見つけるためのクラスがHandlerMapping。 こういうのは、命名規約といったルール付けをしておくことで、実装者が 設定ファイルを書かなくても自動でできるようにしたい。 イメージとしては、/top/top.formにアクセス…

動的SQLを試す

ユーザー情報的なテーブルがあって、ログインIDかユーザー名か(またはその両方)で 検索するような機能をMyBatisとPostgreSQLで試す。 で、まずはベタにこんな感じ。 画面からくるパラメータの前後に%を付加してlike〜という変数に設定しておく。 <if>を使って、l</if>…

プログラムでトランザクション制御

基本的にはアノテーションでトランザクション制御するけど、 独自にコミットしたいなーって時もあるわけで、そんなテスト。 @Service public class HogeServiceImpl implements HogeService { @Autowired private PlatformTransactionManager transactionMan…

Spring3.0とMyBatisの設定メモ

SpringとMyBatisを連携して使う場合、MyBatisが用意している連携用ライブラリを使うらしい。 というわけでメモ。正しいのかどうかは知らないけど、ちゃんとできてるようには見える。 設定ファイル データソースとMyBatisとトランザクションの定義。 トランザ…

ログ用Interceptorを作る

SpringにはDebugInterceptorやらSimpleTraceInterceptorといったものが 用意されてるけど、ログはオレオレフォーマットが好きなので、無駄に 拡張して作ってみる。 作るもの MethodInterceptorを実装したクラス 上記Interceptorを設定した設定ファイル Metho…

ファイルのアップロード

ほぼサンプル通り。 Commons FileUploadをパスに通し、設定ファイルに以下を追加するだけ。 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize" value="1024" /> </bean> あとは、マルチパートでリクエストを飛ばせば、勝手にやってくれる。 その他メモ。 ファイルサイズが超過した場合、MaxUploadSizeExceededExceptionがス…

例外のハンドリング

例外のハンドリングは、運用(ログ)にも関わるので、デフォで用意されて いるものよりは独自に実装したいなーというわけでメモ。 手順はこれだけ。 HandlerExceptionResolverを実装したクラスを作成する。 resolveExceptionの戻り値であるModelAndViewで遷移…

Controller前後に実行される共通の処理を作る

というメモ。 HandlerInterceptorかWebRequestInterceptorの実装クラスを作り、 設定ファイルに書けば、Contorollerの前後に共通の処理を挟める ようになる。 実装クラス public class HogeInterceptor implements HandlerInterceptor { private static fina…

DriverManagerDataSource

Springのデータソースの定義で指定する org.springframework.jdbc.datasource.DriverManagerDataSource というクラス、プールの機能とかはないちょっとしたテスト用のものだった。 http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/spring…

Spring MVC 始めました

で、前に触ったときと同じく、どうもしっくりこないなーなんて。 Struts病なんでしょうかね。自由度高いのはうれしいけど、そうすると破綻する プロジェクトばっかだからなぁ。 追記 ついでにMyBatis(iBATIS)も使う。

OutOfMemoryError

いつものOutOfMemory java.lang.OutOfMemoryError: Java heap space ちょっと違うOutOfMemory java.lang.OutOfMemoryError: GC overhead limit exceeded このときのGCログ [Full GC [〜] GC time would exceed GCTimeLimit of 98% ・・・ [Full GC [〜] GC t…

いやんな感じだけど正しく動いちゃうコード

Calendar calendar = Calendar.getInstance(); calendar.clear(); // 2011/02/01 calendar.set(2011, Calendar.FEBRUARY, 1); // 1ヵ月後 calendar.add(Calendar.MONDAY, 1); System.out.printf("%1$tF", calendar); まぁいんだけどさ・・・。 そういえば、p…

UTF-8-MAC

というのがあるらしく・・・ http://macwiki.sourceforge.jp/wiki/index.php/UTF-8-MAC MACで濁点付きを登録→Winで文字化け? めんどいからスルーの方向で。

Delegate

移譲じゃなくて委譲だったか。 感じの雰囲気的に、移譲と間違えるとこだった。 というどーでもいいエントリで生存していることのお知らせ。

なぜ表示されない?

以下のHTMLを各種ブラウザで表示させる。 <html> <head></head> <body> "<%= hello %>" "<% hello %>" </body> </html> helloが表示される:FireFox, Opera helloが表示されない:IE, Chrome, Safari さて、なんでなんでしょう・・・? これで困ったこと ↑のようなコードを今のプロジェクトで使用し…

演算子の優先順位

絶対Bが出力されないコード。 public static void main(String[] args) { boolean hoge = true; boolean foo = true; String str = hoge ? "A" : " " + (foo ? "B" : " "); System.out.println(str); } 正解はこう。 String str = (hoge ? "A" : " ") + (foo…

7月になって

なぜかid:yuki_maroと一緒の職場になったから イジメてかわいがってやろうと思う。

慣れないものを使うと

バグるよなーという実例。 Pattern pattern = Pattern.compile("^FATAL|ERROR"); ERRORが見事に行頭以外にマッチして、 どーでもいいログをエラーと判定してました\(^o^)/ ここらへんの優先順位って、どっかで明確になってるんですかね? けっこうな大き…

身近なところに

あるもんだなーと。org.apache.commons.lang.time.DurationFormatUtils もうちょいで自作するとこだった・・・。 で、このエントリと全然関係ないけど、連絡が来ていたのでご紹介。 http://www.seasarfoundation.org/event_report/205 今回も幅広く募集して…

お見舞いに行ってきた

と見せかけて、看護婦さんに会ってきました。 体が元気だとなかなかあう機会ってないんですよねー。 不覚にも、「お熱はかりまーす」って言われてみたいなーと思ってしまった。 で、id:bose999さんですが・・・ 元気なさそーだったら行く途中のコンビニで買…

久しぶりにみた

こんなコード。 int i = 01; ・・・ いや、確かに値としては間違ってないんだけどさ。 01とする理由はまったくないとこだし、絶対意味わかって書いてないよなー。