Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jpa Websphere 7 EntityManager工厂创建问题_Jpa_Ejb 3.0_Websphere_Entitymanager - Fatal编程技术网

Jpa Websphere 7 EntityManager工厂创建问题

Jpa Websphere 7 EntityManager工厂创建问题,jpa,ejb-3.0,websphere,entitymanager,Jpa,Ejb 3.0,Websphere,Entitymanager,我正在从事一个maven项目,该项目使用seam 2.2.0、hibernate 3.5.0-CR-2作为JPA提供者、DB2作为数据库服务器、WebSphere7作为应用服务器。现在我面临以下问题: 在被视为SEAM组件的EJB中,我希望使用EJB容器中的EntityManager(@PersistenceContext private EntityManager em),而不是SEAM的EntityManager(@In private EntityManager em)。但这就是问题所在

我正在从事一个maven项目,该项目使用seam 2.2.0、hibernate 3.5.0-CR-2作为JPA提供者、DB2作为数据库服务器、WebSphere7作为应用服务器。现在我面临以下问题:

  • 在被视为SEAM组件的EJB中,我希望使用EJB容器中的EntityManager(@PersistenceContext private EntityManager em),而不是SEAM的EntityManager(@In private EntityManager em)。但这就是问题所在,我无法使用@PersistenceContext获得EntityManager
在服务器日志上,它表示无法创建EntityManagerFactory并获取ClassCastException:

java.lang.ClassCastException:org.hibernate.ejb.HibernatePersistence与javax.persistence.spi.PersistenceProvider不兼容

在论坛上进行了大量调试和搜索之后,我假设问题在于Websphere没有使用Hibernate JPA提供程序

有没有人面对过这个问题并找到了解决办法?我已经为我的应用程序配置了类加载器,以便首先用应用程序类加载器加载类,并且我\n已经在应用程序ear中打包了所有必要的JAR,如中所述:。如有必要,我将发布persistence.xml、components.xml文件和堆栈跟踪

我发现这里也讨论了这个问题:

任何提示都会有用。
提前谢谢

Mihaela

我怀疑您的耳朵中包含了JPAAPI jar。使用“parent last”(也称为“load class with application class loader first”)时,应用程序正在加载javax.persistence.spi.PersistenceProvider类的第二个副本,该副本与WAS中包含的副本不兼容。您需要从EAR中删除这些类或更改回“家长优先”委派模式。

我怀疑您的EAR中包含了JPA API jar。使用“parent last”(也称为“load class with application class loader first”)时,应用程序正在加载javax.persistence.spi.PersistenceProvider类的第二个副本,该副本与WAS中包含的副本不兼容。您需要从EAR中删除这些类,或者更改回“家长优先”委派模式。

谢谢您的提示。事实上,我的耳朵中也包含了JPAAPI jar。这并没有解决我的问题(无论如何,我得到了另一个例外),但我必须首先检查Hibernate所需的JAR和正确的作用域。好吧,我无法帮助解决您的问题,除非您描述它:-)。也许升级并更新您的问题描述,或者接受并开始一个新问题?我仍在尝试一些场景,只有在这之后,我才能返回一个更清晰的描述谢谢您的提示。事实上,我的耳朵中也包含了JPAAPI jar。这并没有解决我的问题(无论如何,我得到了另一个例外),但我必须首先检查Hibernate所需的JAR和正确的作用域。好吧,我无法帮助解决您的问题,除非您描述它:-)。也许升级并更新您的问题描述,或者接受并开始一个新问题?我仍在尝试一些场景,只有在这之后,我才能返回一个更清晰的描述