2013-03-17 47 views
1

這是我在實體bean的第一次嘗試,我多次碰到下面的錯誤: -實體Bean:無法檢索EntityManagerFactory的對的unitName空

java.lang.IllegalStateException: Unable to retrieve EntityManagerFactory for unitName null 

我用一個NetBeans 7.3和GlassFish寫了一個簡單的實體bean實例3.1.2.2服務器。看來我的persistance.xml文件存在問題。不過,我無法解決這個問題。我讀了

JavaEE 6: java.lang.IllegalStateException: Unable to retrieve EntityManagerFactory for unitName null

Unable to retrieve EntityManagerFactory for unitName null for simple EJB - 見nosferatum答案

但下班後還我還沒有完全能夠解決這個問題。我附加了我的目錄結構的屏幕截圖,並且還爲我的xml文件編碼,希望有人能指出錯誤。

persistance.xml:(由自動生成的NetBeans碼)

<?xml version="1.0" encoding="UTF-8"?> 
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"> 
    <persistence-unit name="EnterpriseApplication3-ejbPU" transaction-type="JTA"> 
    <jta-data-source>TestDatabase</jta-data-source> 
    <exclude-unlisted-classes>false</exclude-unlisted-classes> 
    <properties/> 
    </persistence-unit> 
</persistence> 

Project Directory Structure (Persistance.xml autoplaced by NetBeans

失敗代碼:

宣言:

// This injects the default entity manager factory 
    @PersistenceUnit 
    private EntityManagerFactory emf; 

調用的點:

EntityManager em = emf.createEntityManager(); 

另外幾個人似乎做到這一點:

@PersistenceContext(unitName = "myPU") 

,並有在persistance.xml相同的名稱。我做了所有項目文件的快速搜索,並沒有提供@PersistenceContext註釋。但我加

@PersistenceContext(unitName = "EnterpriseApplication3-ejbPU") 

我的代碼,調用EntityManagerFactory。但仍然沒有成功:(

回答

0

試試這個:

EntityManagerFactory emf = Persistence.createEntityManagerFactory("EnterpriseApplication3-ejbPU"); 
EntityManager em = emf.createEntityManager(); 
相關問題