EJB 3.0中的Singleton Bean未从另一个Jar文件中的另一个Ejb引用

时间:2013-07-08 21:06:23

标签: ejb-3.0

我有一个EAR     Example.war,ExampleEAR.jar,/ lib /persist.jar

现在在启动服务器时,有一个StartUpEJB.java,它以@Startup注释启动。现在,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)

1 个答案:

答案 0 :(得分: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注释初始化依赖组件。