Java 工厂返回带有EJB注入字段Null的Bean
我有一个Java中的工厂类,其中包含一些返回Java Bean的方法。所有这些JavaBean都有一些DAO对象作为字段,这些字段被注入注释@EJB。然而,在任何情况下,这些DAO都是空的,所以我认为EJB注入有问题。我使用WebLogic进行部署。有什么解决问题的建议吗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
//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,…,容器将创建并找到它,如果名称正确的话。
工厂是没有必要的