簡體   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