Фабрика возвращает Боб с EJB-введенным полем Null - PullRequest
0 голосов
/ 08 июля 2019

У меня есть класс Factory в Java с некоторыми методами, которые возвращают некоторый Java Bean. Все эти Java-бины имеют некоторый объект DAO в виде полей, которые вводятся с аннотацией @EJB. Однако в каждом случае все эти DAO имеют значение Null, поэтому я полагаю, что у меня проблема с инъекцией EJB. Я использую WebLogic для развертывания. Есть предложения по решению проблемы?

//Factory class
public class Factory extends AbstractFactory {

    @Override
    public InterfaceService getService() {
        return new ClassBean();
    }
}

//Bean class
@Stateless(mappedName = "ClassBean")
@LocalBean
public class ClassBean implements IBeanService {

    @EJB(beanName = "ClassDAO")
    private ClassDAO classDAO;


    public List<String> getList() throws ExpectedModelException {
        return classDAO.getStringList(); //this one throws NullPointerException
}

1 Ответ

0 голосов
/ 09 июля 2019

Никогда не создавайте Enterprise-Beans, используя new. Создание, кэширование, удаление ... выполняется контейнером.

Вы должны объявить ClassDao как @Stateless или @Singleton, ... и контейнер создаст и найдет его, надеюсь, если имена правильные. Фабрика не нужна.

...