класс в lib/jar доступ к EJB в ухе

Моя структура приложения

MyEAR.ear
    |-- MyWAR.war
    |-- MyEjb.jar
    |-- lib
         |- data.jar
         |- vo.jar
         |- util.jar
         |- jpa.jar     

myWAR.war имеет класс сервлета, который вызывает DataHelp.class, у которого есть вызов ejb.

//  MyWAR.war
Class servlet{
     DataHelper helper = new DataHelper().
     helper.getData();
}

//  lib/data.jar
Class DataHelper{
   @EJB
   MyEjb ejbBean;

    public Object  getData(){
        ejbBean.getData();
    }
}

// MyEJB.jar
@Stateless
@LocalBean
public class MyEjb {
    @PersistenceContext(unitName = "db.jpa.jar")
    EntityManager em;

    public Object getData(){
           // JPA
     }
}

ejbBean MyEjb; в DataHelper имеет значение null. Я попытался переместить банку рядом с ejb.jar. Все еще получаю ту же ошибку.

Помогите, пожалуйста, настроить упаковку. Мне нужно, чтобы data.jar также использовался в другом проекте, поэтому он должен быть независимым банком.

Спасибо.


person user418836    schedule 06.02.2017    source источник
comment
Возможный дубликат Мое ухо не может найти модуль ejb классы   -  person Steve C    schedule 10.02.2017


Ответы (1)


Для корректной работы внедрения ejb внутри класса DataHelper файл data.jar должен находиться внутри MyEAR.ear как модуль jar ejb, а не в lib. Если вы хотите использовать его в других проектах, сделайте то же самое, поместив его как ejb jar в ухо. Затем добавьте следующее в application.xml

<module>
    <ejb>data.jar</ejb>
</module>
person Monzurul Haque Shimul    schedule 07.02.2017
comment
Когда data.jar перемещается внутрь myEAR.ear в качестве модуля ejb jar... где именно он оказывается? Рядом с MyEjb.jar? - person Thufir; 19.08.2017