gpt4 book ai didi

java - 工厂返回带有 EJB 注入(inject)字段 Null 的 Bean

转载 作者:行者123 更新时间:2023-11-30 05:34:11 24 4
gpt4 key购买 nike

我有一个 Java 工厂类,其中有一些返回一些 Java Bean 的方法。所有这些 Java Bean 都有一些 DAO 对象作为字段,并使用注释 @EJB 注入(inject)。然而在每种情况下这些 DAO 都是 Null,所以我想我在 EJB 注入(inject)方面遇到了问题。我使用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
}

最佳答案

切勿使用 new 创建 Enterprise-Bean。创建、缓存、删除……都是由容器完成的。

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

关于java - 工厂返回带有 EJB 注入(inject)字段 Null 的 Bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56939722/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com