带有 EJB 注入字段 Null 的工厂 returns Bean

Factory returns Bean with EJB injected field Null

我在 Java 中有一个工厂 class,其中包含一些 return 一些 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
}

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

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