私はEJB2.xアプリケーションをテストしていました。2つのモジュールを別々に作成しました:
EJBモジュール:単純なステートレスセッションBeanが含まれています
Webモジュール:EJBモジュールを検索するための単一のサーブレットページが含まれています。使ってJboss 4.2.3
いました。
最初に、EJBモジュールをデプロイしましたが、デプロイメントはうまくいきました。 次に、Webモジュールをデプロイしましたが、デプロイはうまくいきました。
次に、次のコードを使用してEJBモジュールを検索しました。
Context c = new InitialContext();
Object o = c.lookup("HelloJNDI"); // Line 1
HelloLocalHome rv = (HelloLocalHome) o; // Line 2
HelloLocal local = rv.create();
ルックアップはうまくいきましたが(Line 1
)、Line 2
クラスキャスト例外が発生しました。
次に、上記のコードを2つのシナリオでテストします。
EJBとWebモジュールを1つにパッケージ化しました
EAR module
。EAR
次に、このモジュールをにデプロイするJBoss 4.2.3
と、上記のルックアップコードは魅力のように機能しました。を使用しようとし
JBoss 5
ましたが、EJBモジュールとWebモジュールを別々にデプロイした場合でも、上記のルックアップコードはうまく機能しました。
では、JBoss 4で2つのモジュールを別々にデプロイしたときに、うまくいかなかったのはなぜですか?2つのモジュールが同じコンテナーにデプロイされているため、ローカルJNDIルックアップのみを使用します。何かが足りなかったのですか、それともこれはJBoss 4の欠陥ですか?