2013-07-08 2 views
0

У меня есть EAR с
Example.war, ExampleEAR.jar, /lib/persist.jar
.
Теперь при запуске сервера есть StartUpEJB.java, который запускается в виде аннотаций с помощью @Startup. Теперь StartUPEJB ссылается на PersistMgrEJB.java, который присутствует в файле persist.jar. Но я получаю следующую ошибку.Singleton Bean в EJB 3.0 не ссылается на другой Ejb в другом файле Jar

Причина: javax.ejb.NoSuchEJBException: Произошла ошибка во время инициализации одноэлементного сеансового компонента ExampleEAR # ExampleEJB.jar # StartUPEJB, в результате чего отбрасывается экземпляр singleton .; вложенное исключение: javax.ejb.EJBException: ссылка EJB в компоненте StartUpEJB в модуле ExampleEAR.jar приложения ExampleEAR не может быть разрешена; Вложенное исключение: com.ibm.ejs.container.EJBNotFoundException: EJB с интерфейсом com.test.myejb.PersistMgrEJB не присутствует в приложении ExampleEAR. в com.ibm.ejs.container.util.ExceptionUtil.NoSuchEJBException (ExceptionUtil.java:511)

ответ

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 аннотацию.

+0

Большое спасибо Nayan .. наш подход работал для меня !!! –

+0

@JayramRout Добро пожаловать. –

Смежные вопросы