ライブラリを眺めていたらEclipseLinkがあった。
入れた記憶もないのだが、ディレクトリを見るとGlassFish V3TP2をインストールするとここに追加されるようだ。
そういやTopLink Essentialsは日本語の扱いに問題があるのだが、EclipseLinkでは直っているのか気になった。そこで試してみることに。
JPAのウィザードのところにも自動的に検出されているようだ。
ここでEclipseLinkを選び、ライブラリをejb-jarとwarのプロジェクトにそれぞれ追加する。あくまでもremoteのテストなのでearは今回は触らない。パッケージングするとremoteセッションビーンでもLocalと同様の扱いになるためだ。
実行。
com.sun.rave.web.ui.appbase.ApplicationException: nested exception is: java.rmi.RemoteException: CORBA DATA_CONVERSION 1330446337 No; nested exception is: org.omg.CORBA.DATA_CONVERSION: ----------BEGIN server-side stack trace---------- org.omg.CORBA.DATA_CONVERSION: vmcid: OMG minor code: 1 completed: No at com.sun.corba.ee.impl.logging.OMGSystemException.charNotInCodeset(OMGSystemException.java:2093) at com.sun.corba.ee.impl.logging.OMGSystemException.charNotInCodeset(OMGSystemException.java:2111) at com.sun.corba.ee.impl.encoding.CodeSetConversion$JavaCTBConverter.convertCharArray(CodeSetConversion.java:336) at com.sun.corba.ee.impl.encoding.CodeSetConversion$JavaCTBConverter.convert(CodeSetConversion.java:249) at com.sun.corba.ee.impl.encoding.CDROutputStream_1_0.writeString(CDROutputStream_1_0.java:504) at com.sun.corba.ee.impl.encoding.CDROutputStream_1_0.write_string(CDROutputStream_1_0.java:493)
EclipseLinkもTopLink Essentialsと同様に日本語のフィールドがあるとだめみたい。まったく同様の現象から日本語のプロパティ自体はうまくいくと思われる。また、EJB単体でもうまくいくはず。
JPAを使う範囲においてはEclipseLinkとTopLink Essentialsは同様だと思っていいみたい。まだ1.0の実装だしね。