2

JNDIを使用して、サーブレットで(ローカル変数として)新しいステートフルセッションBeanを取得しようとしています。私のdoGet()方法は次のとおりです。

Bean bean = (Bean) new InitialContext().lookup("beanName");

インクルードを試みましjava:comp/envたが、すべての試みで名前の例外が発生しました。

との@Statefulようなさまざまな推測を使用して、アノテーションでBeanをバインドしようとしています。@Stateful(name="beanName")@Stateful(mappedName="beanName")

4

1 に答える 1

2

必要なのは@EJB、次のように、クラスレベルでサーブレットのアノテーションを使用することでした。

@EJB(name="beanName", beanInterface = Bean.class)

@EJB次に、アノテーションでバインドされた名前を使用して、サービスメソッドのルックアップを実行できます。

Bean beanInstance = (Bean) new InitialContext().lookup("java:comp/env/beanName");

@StatefulBeanクラス自体には、プレーンアノテーション以外は何も必要ありません。

于 2010-05-19T01:36:39.933 に答える