Java 工厂返回带有EJB注入字段Null的Bean

Java 工厂返回带有EJB注入字段Null的Bean,java,dependency-injection,ejb,Java,Dependency Injection,Ejb,我有一个Java中的工厂类,其中包含一些返回Java Bean的方法。所有这些JavaBean都有一些DAO对象作为字段,这些字段被注入注释@EJB。然而,在任何情况下,这些DAO都是空的,所以我认为EJB注入有问题。我使用WebLogic进行部署。有什么解决问题的建议吗 //Factory class public class Factory extends AbstractFactory { @Override public InterfaceService getServ

我有一个Java中的工厂类,其中包含一些返回Java Bean的方法。所有这些JavaBean都有一些DAO对象作为字段,这些字段被注入注释@EJB。然而,在任何情况下,这些DAO都是空的,所以我认为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
}
//工厂类
公共类工厂扩展了抽象工厂{
@凌驾
公共接口服务getService(){
返回新的ClassBean();
}
}
//豆类
@无状态(mappedName=“ClassBean”)
@本地豆
公共类ClassBean实现IBeanService{
@EJB(beanName=“ClassDAO”)
私有类道类道;
public List getList()抛出ExpectedModelException{
return classDAO.getStringList();//这个抛出NullPointerException
}

永远不要使用new创建企业bean。 创建、缓存、删除……由容器完成

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