0

Mavenテストとして実行するMavenクライアントプロジェクトがあります。junitテストで最初に行うことは、jndi文字列を使用したルックアップです。ここで、リモートインターフェイスにキャストされるステートレスBeanプロキシを受け取ります。インターフェイスからメソッドを呼び出すとすぐに(jpaを使用するデータアクセスオブジェクトを使用するいくつかのドメインオブジェクトを保存するなど)、例外を受け取ります

javax.ejb.NoSuchEJBException: No such EJB[appname=,modulename=someName,distinctname=,beanname=SomeBean]

ドキュメントには、「ステートフルセッションまたは存在しなくなったシングルトンオブジェクトでビジネスメソッドを呼び出そうとすると、NoSuchEJBExceptionがスローされます」と記載されています。重要なのは、Beanはステートレスであり、ステートフルでもシングルトンでもないということです。また、jndi文字列が正しいことも確信しています。クライアントプロジェクトのメインメソッドで同じルックアップとpersistence-method-callを実行すると(「installjboss-as:deploy」を使用してmavenビルドとして実行)、すべて正常に動作します。テスト時にプロキシからの永続化メソッドをどのように使用できるかについての提案はありますか?一部の同僚は同様の設定をしており、Arquillianなどがなくても機能します。

4

1 に答える 1

0

理由はわかりませんが、現在は機能しています。私がしたことは、すべてのDaoBeanが継承する抽象汎用DaoBean内のEntityManagerのgetterメソッドを削除することでした。ゲッターがあると、クライアントの実行中に突然エラーとして表示されました(以前はエラーとして表示されませんでした)。

于 2012-05-02T09:57:58.520 に答える