Hibernate Weblogic 10.3.4 java.lang.NoSuchMethodError:javax / persistence / spi / PersistenceUnitInfo.getValidationMode()Ljavax / persistence / ValidationMode; [英] Hibernate Weblogic 10.3.4 java.lang.NoSuchMethodError: javax/persistence/spi/PersistenceUnitInfo.getValidationMode()Ljavax/persistence/ValidationMode;
问题描述
我在Ubuntu 12.04 LTS上运行了一个weblogic 10.3.4(是的,我知道它是一个传统版本,但我不是这个版本的支持者)。
在服务器上部署JPA(hibernate)web应用程序时,我得到
java.lang.NoSuchMethodError:javax /persistence/spi/PersistenceUnitInfo.getValidationMode()Ljavax/persistence/ValidationMode;在org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:629)
在org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:73)
在weblogic.deployment .BasePersistenceUnitInfoImpl.initializeEntityManagerFactory(BasePersistenceUnitInfoImpl.java:393)
at weblogic.deployment.BasePersistenceUnitInfoImpl.initializeEntityManagerFactory(BasePersistenceUnitInfoImpl.java:386)
at weblogic.deployment.BasePersistenceUnitInfoImpl。< init>(BasePersistenceUnitInfoImpl.java:
截断。查看完整堆栈跟踪的日志文件
导致:java.lang.NoSuchMethodError:javax / persistence / spi / PersistenceUnitInfo.getValidationMode()Ljavax / persistence / ValidationMode;在org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:629)
在org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:73)
在weblogic.deployment .BasePersistenceUnitInfoImpl.initializeEntityManagerFactory(BasePersistenceUnitInfoImpl.java:393)
at weblogic.deployment.BasePersistenceUnitInfoImpl.initializeEntityManagerFactory(BasePersistenceUnitInfoImpl.java:386)
at weblogic.deployment.BasePersistenceUnitInfoImpl。< init>(BasePersistenceUnitInfoImpl.java:
截断。查看完整堆栈跟踪的日志文件
我可以看到 很多 官方解决方案位于 http://docs.oracle.com/cd/E17904_01/web.1111/e13720/using_toplink.htm#EJBAD1309 到WL_HOME / common / bin / commEnv.sh t work 我的weblogic.xml文件如下 我也尝试过很多其他版本,有些会增加上述的问题。 java.lang.NoSuchMethodError:的javax /持久/ SPI / PersistenceUnitInfo.getValidationMode( )Ljavax / persistence / ValidationMode 反而给我: 在我看来,必须移除: becouse可能导入了ibernate-jpa-2.0-api或ibernate-jpa-2.1-api,间接太。 I'm running a weblogic 10.3.4 (Yes I know it a legacy version, but I'm not the one dictating the version...) on a Ubuntu 12.04 LTS. When deploying a JPA (hibernate) webapp on the server I get I can see that MANY people have the same issue. The official solution is found at http://docs.oracle.com/cd/E17904_01/web.1111/e13720/using_toplink.htm#EJBAD1309
Which tells me to add: to WL_HOME/common/bin/commEnv.sh This didn't work My weblogic.xml is a following I also tried many other versions there as, some have add issues with the above of e.g. java.lang.NoSuchMethodError: javax/persistence/spi/PersistenceUnitInfo.getValidationMode()Ljavax/persistence/ValidationMode That instead gives me:
In my opinion, you have to remove: becouse probably you imported ibernate-jpa-2.0-api or ibernate-jpa-2.1-api, indirectly too. 这篇关于Hibernate Weblogic 10.3.4 java.lang.NoSuchMethodError:javax / persistence / spi / PersistenceUnitInfo.getValidationMode()Ljavax / persistence / ValidationMode;的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
它告诉我要添加:
$ $ p $ #在WebLogic Server 10.3.4上启用JPA 2.0功能
export PRE_CLASSPATH = %BEA_HOME%\modules\javax.persistence_1.0.0.0_2-0-0.jar;%BEA_HOME%\modules\com.oracle.jpa2support_1.0.0.0_2-0.jar
< ?xml version =1.0encoding =UTF-8?>
< container-descriptor>
< prefer-web-inf-classes> true< / prefer-web-inf-classes>
< / container-descriptor>
< / weblogic-web-app>
<?xml version =1.0encoding =UTF-8 ?>
< prefer-application-packages>
< package-name> antlr。*< / package-name>
< package-name> org.hibernate。*< / package-name>
< package-name> javax.persistence。*< / package-name>
< / prefer-application-packages>
< / container-descriptor>
weblogic.application.ModuleException:未能在weblogic.servlet中加载webapp:'administration-gui.war'
。 internal.WebAppModule.prepare(WebAppModule.java:393)
处weblogic.application.internal.flow.ModuleListenerInvoker weblogic.application.internal.flow.ScopedModuleDriver.prepare(ScopedModuleDriver.java:180)
。制备(ModuleListenerInvoker.java:199)
。在weblogic.application.internal.flow.DeploymentCallbackFlow $ 1.next(DeploymentCallbackFlow.java:518)$ b $在weblogic.application.utils.StateMachineDriver.nextState b(StateMachineDriver.java :52)
截断。请参阅日志文件以获取完整的堆栈跟踪
导致者:weblogic.deployment.EnvironmentException:处理持久性单元时出错提供模块管理-gui.war:实例化PersistenceUnit Offer的Persistence Provider类org.hibernate.ejb.HibernatePersistence时出错: java.lang.ClassCastException:org.hibernate.ejb.HibernatePersistence
at weblogic.deployment.BasePersistenceUnitInfoImpl.getPersistenceProvider(BasePersistenceUnitInfoImpl.java:375)
at weblogic.deployment.BasePersistenceUnitInfoImpl.initializeEntityManagerFactory(BasePersistenceUnitInfoImpl.java:393 )
。在weblogic.deployment.BasePersistenceUnitInfoImpl.initializeEntityManagerFactory(BasePersistenceUnitInfoImpl.java:386)
。在weblogic.deployment.BasePersistenceUnitInfoImpl<初始化>(BasePersistenceUnitInfoImpl.java:158)
。在weblogic.deployment .PersistenceUnitInfoImpl。< init>(PersistenceUnitInfoImpl.java:39)
截断。查看完整堆栈跟踪的日志文件
<依赖关系>
< groupId> javax.persistence< / groupId>
< artifactId> persistence-api< / artifactId>
< version> 1.0.2< / version>
< /依赖关系>
java.lang.NoSuchMethodError: javax/persistence/spi/PersistenceUnitInfo.getValidationMode()Ljavax/persistence/ValidationMode;
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:629)
at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:73)
at weblogic.deployment.BasePersistenceUnitInfoImpl.initializeEntityManagerFactory(BasePersistenceUnitInfoImpl.java:393)
at weblogic.deployment.BasePersistenceUnitInfoImpl.initializeEntityManagerFactory(BasePersistenceUnitInfoImpl.java:386)
at weblogic.deployment.BasePersistenceUnitInfoImpl.<init>(BasePersistenceUnitInfoImpl.java:158)
Truncated. see log file for complete stacktrace
Caused By: java.lang.NoSuchMethodError: javax/persistence/spi/PersistenceUnitInfo.getValidationMode()Ljavax/persistence/ValidationMode;
at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:629)
at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:73)
at weblogic.deployment.BasePersistenceUnitInfoImpl.initializeEntityManagerFactory(BasePersistenceUnitInfoImpl.java:393)
at weblogic.deployment.BasePersistenceUnitInfoImpl.initializeEntityManagerFactory(BasePersistenceUnitInfoImpl.java:386)
at weblogic.deployment.BasePersistenceUnitInfoImpl.<init>(BasePersistenceUnitInfoImpl.java:158)
Truncated. see log file for complete stacktrace
#Enable JPA 2.0 functionality on WebLogic Server 10.3.4
export PRE_CLASSPATH=%BEA_HOME%\modules\javax.persistence_1.0.0.0_2-0-0.jar;%BEA_HOME%\modules\com.oracle.jpa2support_1.0.0.0_2-0.jar
<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<container-descriptor>
<prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor>
</weblogic-web-app>
<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/90" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<container-descriptor>
<prefer-application-packages>
<package-name>antlr.*</package-name>
<package-name>org.hibernate.*</package-name>
<package-name>javax.persistence.*</package-name>
</prefer-application-packages>
</container-descriptor>
weblogic.application.ModuleException: Failed to load webapp: 'administration-gui.war'
at weblogic.servlet.internal.WebAppModule.prepare(WebAppModule.java:393)
at weblogic.application.internal.flow.ScopedModuleDriver.prepare(ScopedModuleDriver.java:180)
at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:199)
at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:518)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
Truncated. see log file for complete stacktrace
Caused By: weblogic.deployment.EnvironmentException: Error processing persistence unit Offer of module administration-gui.war: Error instantiating the Persistence Provider class org.hibernate.ejb.HibernatePersistence of the PersistenceUnit Offer: java.lang.ClassCastException: org.hibernate.ejb.HibernatePersistence
at weblogic.deployment.BasePersistenceUnitInfoImpl.getPersistenceProvider(BasePersistenceUnitInfoImpl.java:375)
at weblogic.deployment.BasePersistenceUnitInfoImpl.initializeEntityManagerFactory(BasePersistenceUnitInfoImpl.java:393)
at weblogic.deployment.BasePersistenceUnitInfoImpl.initializeEntityManagerFactory(BasePersistenceUnitInfoImpl.java:386)
at weblogic.deployment.BasePersistenceUnitInfoImpl.<init>(BasePersistenceUnitInfoImpl.java:158)
at weblogic.deployment.PersistenceUnitInfoImpl.<init>(PersistenceUnitInfoImpl.java:39)
Truncated. see log file for complete stacktrace
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>persistence-api</artifactId>
<version>1.0.2</version>
</dependency>