質問

耳アプリには2つのモジュールが含まれています。

EJBモジュールとWebモジュール。

Webモジュールでは、いくつかのEJB SLSBにRefを取得しようとしています。注入は使用しません クラスを原因私はメソッドを呼び出す必要があります.

Webモジュールの次のコードを使用しています。

IFooBarService service = InitialContext.doLookup("IFooBarService");

ifoobarservice:(EJBモジュールで)として定義されたローカルインターフェイス:

@Local
public interface IFooBarService
{
    // ...
}

何かが恋しいですか? (環境情報を提供する必要がありますか?)

役に立ちましたか?

解決 2

ここから: https://forums.oracle.com/forums/thread.jspa?threadid=476903

解決策は次のとおりです。

fooBarService = (FooBarService) ((StatelessSessionDefaultLocalHome)
    new InitialContext().lookup("EJBModuleName_FooBarServiceLocal")).create();

他のヒント

よろしいですか IFooBarService JNDIの名前はifoobarserviceサービスに拘束されていますか?たとえば、JBossはブートログにJNDI名を示しています。その後、検索目的で使用できます。

一般に、アプリをポータブルにしたい場合は、Java EEスペックには独自のものがあるため、サーバーメカニズムに頼ってJNDI名を生成するべきではありません。あなたはできるはずです:

IFooBarService service = InitialContext.doLookup("java:comp/env/IFooBarService");

Java EE(Java EE 6)の新しいバージョンを使用していて、同じアプリにあるが別のモジュールであるEJBを検索したい場合は、次のことができます。

IFooBarService service = InitialContext.doLookup("java:app/[module name]/IFooBarService");

標準名の詳細 ここ.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top