Seasar2とJNDI

以前指摘されたとおりSeasar2でJNDIアクセスするためにjndi.propertiesをクラスパスのルートに置いたら通常のアプリケーションでは問題なく動いた。

問題はWebアプリ。

jndi.propertiesをおいただけでVisualWebJSFのビジュアルデザイナが起動しなくなる。びっくり。一度この現象が起きるとNetBeansを再起動するまで直らない。jndi.propertiesの中身をコメント化するとVisualWebJSFが動く。これはいったい・・・。NetBeans6.0のバグだろうか。Seasar2コンポーネント登録してないとおこられるんだけど、それがNetBeansのエラーメッセージにでる。NetBeans自体の動作がいちプロジェクト内のソースに左右されるっておかしくないかい?なんか、これ昔開発バージョンで出ていたような気がするんだけどまだ直ってなかったのね。

Tomcat上ではアプリケーションが問題なく動くため生成されるアプリ自体は問題なくあくまでもVisualWebの問題なのだが、これは致命的すぎる。

ところでs2servletを使うとJNDI登録してくれないような気がする。まずs2servletが404を常に返すのでかなり怪しい感じもする。



とりあえずNetBeans6.0とSeasar2との相性は最悪くさい。5.5.1じゃないとだめくさい香りもかなりする。


ちなみにglassfishからTomcatへ変更した理由は、AP鯖だとデプロイ時に@EJBなどを判断して自動的に登録しようとするため。JPAのときと同じ問題がEJBでも発生していた。同様にS2TopLinkもAP鯖だと危険くさい。glassfishはデータソースや環境の管理が容易なTomcatとして使おうと思っていたけど、そうはカンタンにいかないようだ。


ということは、Seasar2とNetBeans6.0を組み合わせる場合Spring2.5のような構成にしないとだめみたい。EJB3の手軽な実装というくくりではちょっと使いにくい感じ。

あとでもうすこし深く突っ込んでみよう。現在帰省中でダイヤルアップ接続なのでソースを落とすことが出来ませぬ。