我对玻璃鱼,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