WebSphere 7. Внедрение EJB из другого приложения

Я пытаюсь внедрить 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, он работает нормально. Как сообщить контейнеру, откуда следует внедрять мои удаленные компоненты?

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";
    }
}
10
задан Denis Tulskiy 17 February 2012 в 08:27
поделиться