繁体   English   中英

EJB-注入bean时出现NullpointerException

[英]EJB - NullpointerException while injecting bean

我是EJB和CDI的新手。 请在这里帮助我了解我在做什么错:

我的代码如下,并部署在JBoss WildFly 8的WAR中:

@Stateless(name = "application.listDao")
public class ListDao extends BaseDao {

    @Inject
    private SomeOtherDao someOtherDao;

    // some other methods

}

@Stateless
public abstract class BaseDao {

    @Inject
    protected EntityManager entityManager;

    public List find( long id ) {

        List list = new ArrayList<>();

        // JPA stuff to perform operations

        return list;
    }

}

现在,我将此ListDao注入到部署在同一wildfly实例上的其他WAR中:

@RequestScoped
public class ListReport {

    @Inject
    private ListDao listDao;

    public List getReport(long id) {

        // Here I am getting NullPointerException
        List reportList = listDao.find(id);

        return reportList;
    }

}

我将listDao设置为null,因此得到了NullPointerException。 通过将空bean.xml放在WEB-INF文件夹下来启用CDI。

正如其中一条评论中提到的那样,您在EntityManager使用@Inject ,但是您没有提供任何证据表明您有生产者。 EntityManager没有默认的生产者方法

如果另一场战争不在同一EAR(企业档案)中,则不可能。 这是两个完全独立的部署。 由于类加载器之间的隔离,两个部署甚至无法看到彼此的类。 在这种情况下,您需要将两次战争打包在一起。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM