Web applications 在web应用程序中放置JPA persistence.xml的位置
我在J2EE编程中锻炼了自己:我修改了Oracle J2EE教程e的源文件,将JPA代码放入其中,并在GlassFish中部署 使用现有的ANT配置,我可以正确编译和部署,但在运行时系统找不到persistence.xml 这是已部署文件的结构。为了避免这个问题,我将相同的xml文件放在了更多的地方,但没有成功 在server.log中,我发现 原因:javax.persistence.PersistenceException:无持久性 EntityManager命名测试的提供程序 Glassfish支持JPA(我没有收到NoDefClassError的ClassnotFoundException,我没有任何类路径问题),持久性的id是唯一的,导致异常的指令是Web applications 在web应用程序中放置JPA persistence.xml的位置,web-applications,jpa,configuration,web-deployment,Web Applications,Jpa,Configuration,Web Deployment,我在J2EE编程中锻炼了自己:我修改了Oracle J2EE教程e的源文件,将JPA代码放入其中,并在GlassFish中部署 使用现有的ANT配置,我可以正确编译和部署,但在运行时系统找不到persistence.xml 这是已部署文件的结构。为了避免这个问题,我将相同的xml文件放在了更多的地方,但没有成功 在server.log中,我发现 原因:javax.persistence.PersistenceException:无持久性 EntityManager命名测试的提供程序 Glassf
Persistence.createEntityManagerFactory("test")
这是我的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="test" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>converter2.ejb.Converter2Bean</class>
<class>entity.Order</class>
<properties>
<property name="hibernate.connection.url" value="jdbc:mysql://localhost:3306/JPA"/>
<property name="hibernate.connection.user" value="root"/>
<property name="hibernate.connection.driver" value="com.mysql.jdbc.Driver"/>
<property name="hibernate.connection.password" value="my_password"/>
<property name="default-schema" value="JPA"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect"/>
<property name="hibernate.hbm2ddl.import_files" value="C:\\mysql\\crea.sql"/>
</properties>
</persistence-unit>
</persistence>
org.hibernate.ejb.HibernatePersistence
converter2.ejb.Converter2Bean
实体.秩序
我提出:
- hibernate-testing.jar
- hibernate3.jar
- hibernate-jpa-2.0-api-1.0.1.Final.jar
我错在哪里?问题源于Glassfish无法找到Hibernate类,将它们放在域文件夹下的lib/ext文件夹中(例如:/glassfish3/Glassfish/domain/yourdomain/lib/ext),然后重新启动Glassfish。应用程序是一个EAR,而不是一个WARI放入库:Hibernate、antlr、commons collections、dom4j、,已部署应用程序的WEB-INF/hibernate中的javassist、jta e slf4j api但问题仍然存在您是否尝试了我在回答中提出的建议?*WEB-INF/hibernate不在应用程序服务器类路径中,因此它不是一个解决方案。我尝试过:在我将库放入glassfish3\glassfish\domains\domain1\lib\ext之前,但我仍然收到**javax.persistence.PersistenceException:EntityManager没有持久性提供程序**您确定类是org.hibernate.ejb.HibernatePersistence吗在你提到的一个jar中,我用google搜索过,它似乎包含在hibernate-entitymanager.jar中