embedded EJB3かSeamか

仕事が一段落したんで、ちょっとEJB3をいぢってみようと思ってJavaEEコンテナ入れるのも面倒だしTomcatで使える組み込みでいいかとembedded-ejbに挑戦。
最新版のPreview RC9でサンプルWARを作ってデプロイすると例外でてデプロイすら出来ない。
何が悪いのかライブラリのソースが付属してなかったんで原因解決もしづらいのでバージョンを落としてRC8patch2で再挑戦。
デプロイは成功。
サンプルのJSPでlookup出来ないと例外がw

   CustomerDAOLocal local = (CustomerDAOLocal) ctx.lookup(CustomerDAOLocal.class.getName());
   CustomerDAORemote remote = (CustomerDAORemote) ctx.lookup(CustomerDAORemote.class.getName());

lookupしてる個所をこんな風に変えると、動いたわけで。

   CustomerDAOLocal local = (CustomerDAOLocal) ctx.lookup("CustomerDAOBean/local");
   CustomerDAORemote remote = (CustomerDAORemote) ctx.lookup("CustomerDAOBean/remote");

これでServletコンテナしかもってないTomcatでもEJB3が出来るんで、準備は完了。
んー、フルスタック?というかフレームワークSeamで付属してるマイクロカーネル使ってもできるけど、これだとSeam用だから不要な部分もあったりなかったり。
Seamでほしいと思うのは対話スコープと、JSFとの連携位だし(ぱっと思いつくのは)
手軽ていう部分ではembedded-ejbでいいかなぁ。

[standalone.war]
META-INF/
META-INF/MANIFEST.MF
WEB-INF/
WEB-INF/web.xml
WEB-INF/lib/
WEB-INF/lib/hibernate-all.jar
WEB-INF/lib/jboss-ejb3-all.jar
WEB-INF/lib/thirdparty-all.jar
WEB-INF/lib/tutorial.jar                 ← ejb3コンポーネントをまとめてlibへ
WEB-INF/classes/
WEB-INF/classes/testjms.xml
WEB-INF/classes/default.persistence.properties
WEB-INF/classes/ejb3-interceptors-aop.xml
WEB-INF/classes/embedded-jboss-beans.xml
WEB-INF/classes/jboss-jms-beans.xml
WEB-INF/classes/jndi.properties
WEB-INF/classes/log4j.xml
WEB-INF/classes/login-config.xml
WEB-INF/classes/security-beans.xml
EmbeddedEJB3.jsp

classesディレクトリにはembedded-ejb/confの中身と。
Seamのmc.jarとかより制約?少なそうだし。


それにしてもRC9でWARサンプルだと動かないのに特にGoogleで検索しても出てこないのは、あんまり使われてないのかなぁ。