我對玻璃魚,JPA等非常新,我真的遇到了設置問題。我打算做的是一個帶有持久後端的簡單RESTful服務。我正在使用glassfish3作爲應用程序服務器,並且已經使用jersey-library部署了一個簡單的REST服務。現在我想通過JPA提供對數據庫的訪問。 Glassfish隨JavaDB/derby和EclipseLink提供,是嗎?所以,我想使用:-)Persistence.xml與GlassFish 3.1.1
我創建的META-INF一個persistence.xml中:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.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_1_0.xsd">
<persistence-unit name="myPU" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties>
<property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.ClientDataSource" /> <!-- org.apache.derby.jdbc.EmbeddedDriver -->
<property name="javax.persistence.jdbc.url" value="jdbc:derby://localhost:1527/sample;create=true" />
<property name="javax.persistence.jdbc.user" value="APP" />
<property name="javax.persistence.jdbc.password" value="APP" />
<property name="eclipselink.ddl-generation" value="create-tables" />
</properties>
</persistence-unit>
</persistence>
然後我在資源,在這裏我想訪問/存儲SOM數據創建的場:
@PersistenceUnit(unitName = "myPU")
EntityManagerFactory emf;
但是, 「EMF」 始終是NULL :-(
我想,我的persistence.xml沒有配置相應的
。如果有人有提示,我做錯了什麼,會真的很高興...
謝謝!
您的項目中的persistence.xml位置並不重要,它在何處部署。它應該駐留在app.war:/WEB-INF/classes/META-INF/persistence.xml中,但它在app.war中結束:/META-INF/persistence.xml是可疑的。 – 2012-11-28 22:35:02