带有 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,...容器将创建并找到它,希望名称正确。
不需要工厂。
我在 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,...容器将创建并找到它,希望名称正确。 不需要工厂。