Caused by: org.xml.sax.SAXParseException: expected root element {http://java.sun.com/xml/ns/persistence}persistence
at com.ibm.ws.jpa.management.JaxbUnmarshaller.startElement(JaxbUnmarshaller.java:310)
Caused by: java.lang.ClassCastException: com.ibm.websphere.persistence.PersistenceProviderImpl incompatible with javax.persistence.spi.PersistenceProvider
at javax.persistence.Persistence$1.isLoaded(Persistence.java:110)
at org.hibernate.validator.internal.engine.resolver.JPATraversableResolver.isReachable(JPATraversableResolver.java:56)
5条答案
按热度按时间pw136qt21#
Hibernate4.3.7.Final可以在Websphere Application Server8.5.5中使用,配置如下:
hibernate-jpa-2.1.jar
打包到应用程序中,并将类加载器策略设置为PANLOAD_LAST。Hibernate 4.3.7.Final与WebSphere 8.5.5提供的JPA 2.0 API不兼容
如果不这样做,您将在启动期间得到以下
SAXParseException
,因为WebSphere试图根据JPA 2.0模式解析persistence.xml。该问题是在使用 Hibernate的JPA 2 API而不是Webspheres JPA 1 API 时报告的,而解决方法也适用于Hibernate的JPA 2.1 API,但有一些微小的更改:
您需要将
HibernatePersistence
替换为HibernatePersistenceProvider
,因为前者已被弃用。如果不这样做,您将在启动过程中得到以下
ClassCastException
,因为Hibernate的JPA 2.1 API将加载所有PersistenceProvider
类,包括在类路径中公开的WebSphere类。rbpvctlc2#
Hibernate 4.2.x实现了JPA 2.0规范,我们在WebSphere 8.5.5中使用它没有任何问题。我们将Hibernate JAR打包到我们的WAR中,并将persistence.xml中的provider属性设置为org.hibernate.ejb.HibernatePersistence。
只有Hibernate 4.3.x需要JPA 2.1,并且不适用于WebSphere 8.5.5。
e4yzc0pl3#
我可以使用运行在Java 8上的websphere8.5.5.13来实现这一点,方法是创建一个共享库,其中包含
*hibernate-jpa-2.1-API-1.0.2.Final.jar
*hibernate-core-4.3.11.Final.jar
一切都很顺利
2wnc66cl4#
我能够在WebSphere 8.5上运行JPA 2.1,如下所示:
1-使应用程序类从websphere控制台最后装入父类
2-添加LocalContainerFactoryManagerFactoryBean如下:
exdqitrt5#
在WebSphere中使用自己的持久性提供程序应该没有问题。我的建议是在应用中打包一个JPA 2.1提供程序,并尝试将类加载器更改为最后的父类。在这种情况下,您不会使用WebSphere提供的默认OpenJPA 2.0。您将使用您选择的供应商。
http://www-01.ibm.com/support/knowledgecenter/api/content/SSAW57_8.5.5/com.ibm.websphere.nd.multiplatform.doc/ae/tejb_jpa3rdparty.html
http://www-01.ibm.com/support/knowledgecenter/SSAW57_8.5.5/com.ibm.websphere.nd.multiplatform.doc/ae/trun_classload_server.html?cp=SSAW57_8.5.5%2F3-8-2-5-1&lang=en
希望这对你有帮助。
来自IBM支持门户的另一篇相关文章:http://www-01.ibm.com/support/docview.wss?uid=swg21672354