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で検索しても出てこないのは、あんまり使われてないのかなぁ。