我在J2EE编程中锻炼自己:我修改了Oracle的J2EE教程转换器示例的源文件,将JPA代码放入其中并部署在GlassFish中。
使用现有的 ANT 配置,我正确编译和部署,但在运行时系统找不到persistence.xml。
这是部署文件的结构。我在更多地方放置了相同的文件 xml 以逃避问题,但没有成功。
在server.log中,我发现
引起:javax.persistence.PersistenceException:EntityManager 命名测试没有持久性提供程序
Glassfish支持JPA(我没有收到NoDefClassError的ClassnotFoundException,我没有任何类路径问题),持久化的id是唯一的,导致异常的指令是
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>
我把:
- 休眠测试.jar
- hibernate3.jar
- hibernate-jpa-2.0-api-1.0.1.Final.jar
在目录\glassfish3\glassfish\lib\db中,我重新启动了 Glassfish。我哪里错了?