Я пытаюсь ввести EJB с помощью аннотации @EJB:
- когда я вставляю EJB в другой EJB в том же ухе, он отлично работает.
- когда я вставляю EJB в другой EJB из другого уха в том же server Я получаю исключение:
EJB бросил неожиданное (не объявленное) исключение при вызове метод "sayHello". Исключенные данные: javax.ejb.EJBException: Injection недостаточность; Вложенное исключение: com.ibm.ejs.container.EJBNotFoundException: EJB с интерфейсом com.mycompany.myapp.ejb.test2 нет в приложении myapp1
Я использую WebSphere 7 и EJB 3.0. Когда я делаю поиск в jndi, он работает нормально. Как я могу сообщить контейнеру, откуда ввести мой удаленный beans?
myapp1.ear содержит следующее: myapp1.jar(где EJB есть)
myapp1 EJB:
package com.mycompany.myapp1.ejb.test1;
@Remote
public interface HelloEjb1 {
public String sayHello();
}
EJB Impl:
package com.mycompany.myapp.ejb.test1;
@Stateless
public class HelloEjbImpl1 implements HelloEjb1 {
@EJB
HelloEjb2 helloEjb2;
@Override
public String sayHello() {
return HelloEjb2.sayHello();
}
}
myapp2.ear содержит следующее: myapp2.jar(где EJB есть)
myapp2 EJB:
package com.mycompany.myapp2.ejb.test2;
@Remote
public interface HelloEjb2 {
public String sayHello();
}
EJB Impl:
package com.mycompany.myapp2.ejb.test2;
@Stateless
public class HelloEjbImpl2 implements HelloEjb2 {
@Override
public String sayHello() {
return "Hello";
}
}