Я пытаюсь внедрить EJB с аннотацией @EJB:
- , когда я вставляю EJB в другой EJB в том же ухе, он работает нормально.
- , когда я внедряюEJB в другой EJB от другого уха на том же сервере Я получаю исключение:
EJB сгенерировал непредвиденное (необъявленное) исключение во время вызова метода "sayHello".Данные об исключении: javax.ejb.EJBException: Ошибка впрыска;вложенное исключение: com.ibm.ejs.container.EJBNotFoundException: EJB с интерфейсом com.mycompany.myapp.ejb.test2 отсутствует в приложении myapp1
Я использую WebSphere 7 и EJB 3.0.Когда я сам выполняю поиск jndi, он работает нормально.Как сообщить контейнеру, откуда вводить мои удаленные bean-компоненты?
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";
}
}