【问题标题】:Factory returns Bean with EJB injected field Null工厂返回带有 EJB 注入字段 Null 的 Bean
【发布时间】:2019-07-08 17:14:26
【问题描述】:

我在 Java 中有一个 Factory 类,其中包含一些返回一些 Java Bean 的方法。所有这些 Java Bean 都有一些 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
}

【问题讨论】:

    标签: java dependency-injection ejb


    【解决方案1】:

    永远不要使用 new 创建 Enterprise-Bean。 创建、缓存、删除……由容器完成。

    您必须将 ClassDao 声明为 @Stateless 或 @Singleton,...如果名称正确,容器将创建并找到它。 工厂不是必需的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-17
      • 1970-01-01
      • 2014-10-12
      • 2016-06-25
      • 2017-05-10
      • 2012-08-13
      • 1970-01-01
      相关资源
      最近更新 更多