2015-12-01から1ヶ月間の記事一覧

JDBCでINSERT後のシーケンス値を取得する

idカラムを作って自動採番するような場合。 JPAでINSERTすればidが入った状態でEntityが取れるけど、JDBCの場合にどうするか。 何故にJDBCかというと、バイナリデータを放り込むのにJPAではなくJDBCを使いたいから。 PostgreSQLのbyteaカラムに手動でデータ…

Javaのログ出力ライブラリメモ

知識がlog4jで止まっていたので調査。 Javaのログ出力: 道具と考え方 javaのロガーが多すぎて訳が解らないので整理してみました - 文系プログラマによるTIPSブログ ・・・迷路で遊ぶ暇は無いんだけどな、、、 とりあえず「SLF4J+Logback」でそんなに問題には…

JAX-RS 返却用クラスはデフォルトコンストラクタ必須

タイトルの通り。JAXBの仕様?らしい。 @GET @Produces(MediaType.APPLICATION_JSON) public User getIt() { return new User(1); } この場合、Userクラスが以下だとダメ。 public class User { public User(int id) {} } ちゃんとデフォルトコンストラクタ…

JSON・XMLを返すけどエラー時はステータスコードやメッセージを選びたい

JAX-RSで200とか404とか返すだけなら、メソッド戻り値にResponseを指定してResponseを操作すればいい。 @RequestScoped @Path("myresource") public class MyResource { @GET public Response getIt() { return Response.ok().build(); // 200が返る } } JSO…

DeltaSpike(Data)を諦める

DeltaSpikeもひと通り調べ終わり、実際にコーディングを進めていたがDeltaSpike Dataを使うのを諦めることにした。 理由は原因不明のOutOfMemoryError (heap space)が発生して、どうしても発生源が突き止められなかったから。 JAX-RSの1リクエストでReposito…

Jersey + CDIで@Contextが動かない

Jersey + CDIの構成で、ContainerRequestFilterの中でUriInfoを使おうとしてハマった。 構成は JAX-RS(Jersey) + JPA (on CDI) / on Tomcat - edgegram がベースでDeltaspikeを少々追加。 public class FormTypeFilter implements ContainerRequestFilter { …