0

EM をサーブレットに注入したいのですが、永続化ユニットは EJB JAR で宣言されています。EJB JAR と WAR を含む EAR があります。
問題は、次のエラーが発生することです。

呼び出されたモジュールのスコープで、persistence-context-ref-name [cvu.JpaServlet/em] に対応する持続性ユニットを解決できませんでした

persistence.xml を WAR に入れると問題なく動作しますが、そうしたくありません。

EJB JAR で宣言された PersistenceUnit (persistence.xml) から EntityManager を取得できますか?

4

2 に答える 2

0

wars クラスパスに ejb jar を追加する必要があると思います。

一般に、サーブレットは共有されるため、EntityManager ではなく、サーブレットに EntityManagerFacotry を注入する必要があります。

SessionBeans を使用して持続性をラップすることもできます。

于 2012-05-16T14:34:39.787 に答える
0

すべての永続性クラスと persistence.xml を に移動し、persist.jarに入れましたear/lib。EJB と WAR から動作するようになりました。Just を入れた場合、EJB で使用できなくなりますpersistence.xmlname.war/WEB-INF/classes/META-INF/persistence.xmlEJBに入れると@PersistenceUnit EntityManagerFactoryWARでは使えなくなります。WAR でアクセスするには、 にも配置できますWEB-INF/lib/persist.jar/META-INF/persistence.xml。しかし、より良いのはEARです。

于 2012-05-17T08:53:01.773 に答える