Java Glassfish 4带有EMF Texo-JPA无持久性提供程序
我试图在Glassfish 4中使用,但当我想要初始化EntityManager Provider时,我得到了错误: javax.persistence.PersistenceException:没有名为HelloTexo的EntityManager的持久性提供程序 我试图实现Texo教程找到的。不同的是,我希望它在Glassfish 4上运行 下面是我的代码: web.xml:Java Glassfish 4带有EMF Texo-JPA无持久性提供程序,java,eclipse,jpa,glassfish,glassfish-4,Java,Eclipse,Jpa,Glassfish,Glassfish 4,我试图在Glassfish 4中使用,但当我想要初始化EntityManager Provider时,我得到了错误: javax.persistence.PersistenceException:没有名为HelloTexo的EntityManager的持久性提供程序 我试图实现Texo教程找到的。不同的是,我希望它在Glassfish 4上运行 下面是我的代码: web.xml: <listener> <listener-class>texo.web.TexoCo
<listener>
<listener-class>texo.web.TexoContextListener</listener-class>
</listener>
<filter>
<filter-name>emFilter</filter-name>
<filter-class>org.eclipse.emf.texo.server.store.CurrentEntityManagerRequestFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>emFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
}
在调试中,当我尝试初始化EntityManagerProvider()时出现上述错误
persistence.xml
<?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="HelloTexo" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>jdbc/__MySQLDataSource</jta-data-source>
</persistence-unit>
</persistence>
org.eclipse.persistence.jpa.PersistenceProvider
jdbc/_MySQLDataSource
我通过从Eclipse向我的项目添加JPA项目方面自动创建了这个文件。已成功连接到数据库。我试图将persistence.xml移到WEB-INF/classes/META-INF/中,但仍然出现相同的错误
你知道是什么导致了这个错误吗?
我被困在这里好几天了。。。我真的希望有人能给我一个想法。可能会有类加载器冲突。Glassfish4在容器库路径中包含EclipseLink。尝试从
WEB-INF/lib
文件夹中删除显式
标记和任何jpa实现JAR。标准的Glassfishjavax.persistence.jar应该就是您所需要的了。谢谢!您关于类加载器冲突的评论解决了问题。我从WEB-INF/lib中删除了所有jpa实现JAR,并对标记进行了注释。对于那些与Texo有问题的人。。。我还从Glassfish中删除了所有texo罐子,并将它们保存在我的WEB-INF/lib文件夹中。
<?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="HelloTexo" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>jdbc/__MySQLDataSource</jta-data-source>
</persistence-unit>
</persistence>