0


Example.war 、 ExampleEAR.jar 、 /lib/persist.jarを持つ EAR があり
ます。
サーバーの起動時に、@Startup のアノテーションが付けられて開始される StartUpEJB.java があります。現在、StartUPEJB は、persist.jar ファイルに存在する PersistMgrEJB.java を参照しています。しかし、私は以下のエラーが発生しています。

原因: javax.ejb.NoSuchEJBException: シングルトン セッション Bean ExampleEAR#ExampleEJB.jar#StartUPEJB の初期化中にエラーが発生したため、シングルトン インスタンスが破棄されました。; ネストされた例外は次のとおりです: javax.ejb.EJBException: ExampleEAR アプリケーションの ExampleEAR.jar モジュールの StartUpEJB コンポーネントの EJB 参照を解決できませんでした。ネストされた例外: com.ibm.ejs.container.EJBNotFoundException: インターフェース com.test.myejb.PersistMgrEJB を持つ EJB がアプリケーション ExampleEAR に存在しません。com.ibm.ejs.container.util.ExceptionUtil.NoSuchEJBException(ExceptionUtil.java:511) で

4

1 に答える 1

1

application.xmlで指定することにより、モジュールのデプロイの順序を変更できます。

<initialize-in-order>true</initialize-in-order> 
     <display-name>Example</display-name> 
     <module> 
         <ejb>persist.jar</ejb> 
     </module> 
     <module> 
         <ejb>ExampleEAR.jar</ejb> 
     </module>
     <module> 
         <web> 
             <web-uri>Example.war</web-uri> 
             <context-root>Example-war</context-root> 
         </web> 
     </module> 

EJB 3.1 では、@DependsOnアノテーションを使用した依存コンポーネントの初期化がサポートされています。

于 2013-07-09T06:35:23.513 に答える