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