使用 Weblogic 11G 时,我面临以下错误。
weblogic.application.ModuleException:
at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1514)
at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:486)
at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:425)
at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:41)
at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:119)
Truncated. see log file for complete stacktrace
Caused By: java.lang.NoSuchMethodError: javax.persistence.OneToMany.orphanRemoval()Z
at org.hibernate.cfg.AnnotationBinder.processElementAnnotations(AnnotationBinder.java:1912)
at org.hibernate.cfg.AnnotationBinder.processIdPropertiesIfNotAlready(AnnotationBinder.java:79
at org.hibernate.cfg.AnnotationBinder.bindClass(AnnotationBinder.java:707)
at org.hibernate.cfg.Configuration$MetadataSourceQueue.processAnnotatedClassesQueue(Configuration.java:4035)
at org.hibernate.cfg.Configuration$MetadataSourceQueue.processMetadata(Configuration.java:3989)
让我给你更多的细节。我的 web 应用程序包含ejb3-persistence-1.0.2.GA.jar和hibernate-jpa-2.0-api-1.0.1.Final.jar jar 文件,在这个hibernate-jpa-2.0-api-1.0.1.Final 中。 jar包含orphanRemoval()方法,而ejb3-persistence-1.0.2.GA.jar没有。
我已通过以下规范将 weblogic 配置为加载应用程序库而不是 weblogic 库。
weblogic-application.xml
<prefer-application-packages>
<package-name>antlr.*</package-name>
<package-name>org.mozilla.javascript.*</package-name>
<package-name>org.mozilla.classfile.*</package-name>
<package-name>javax.persistence.*</package-name>
</prefer-application-packages>
所以看来我需要告诉服务器从hibernate-jpa-2.0-api-1.0.1.Final.jar而不是ejb3-persistence-1.0.2.GA.jar文件加载所需的类,但我不知道方式要做到这一点?
您的帮助将不胜感激。