java.lang.NoSuchMethodError: javax/persistence/spi/PersistenceUnitInfo.getValidationMode()Ljavax/persistence/ValidationMode
Asked Answered
E

3

5

When i am deployed my war file (it is working fine in Tomcat) in Weblogic, i keep getting error.

My technologies
spring 3
hibernate
jpa
webservice(metro)

My library

My error is

    ####      >     (BasePersistenceUnitInfoImpl.java:158)
        at weblogic.deployment.PersistenceUnitInfoImpl.(PersistenceUnitInfoImpl.java:39)
        at weblogic.deployment.AbstractPersistenceUnitRegistry.storeDescriptors(AbstractPersistenceUnitRegistry.java:349)
        at weblogic.deployment.AbstractPersistenceUnitRegistry.loadPersistenceDescriptors(AbstractPersistenceUnitRegistry.java:124)
        at weblogic.deployment.ModulePersistenceUnitRegistry.(ModulePersistenceUnitRegistry.java:58)
        at weblogic.servlet.internal.WebAppModule.setupPersistenceUnitRegistry(WebAppModule.java:1790)
        at weblogic.servlet.internal.WebAppServletContext.initClassLoader(WebAppServletContext.java:3028)
        at weblogic.servlet.internal.WebAppServletContext.(WebAppServletContext.java:447)
        at weblogic.servlet.internal.WebAppServletContext.(WebAppServletContext.java:493)
        at weblogic.servlet.internal.HttpServer.loadWebApp(HttpServer.java:418)
        at weblogic.servlet.internal.WebAppModule.registerWebApp(WebAppModule.java:972)
        at weblogic.servlet.internal.WebAppModule.prepare(WebAppModule.java:382)
        at weblogic.application.internal.flow.ScopedModuleDriver.prepare(ScopedModuleDriver.java:176)
        at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:199)
        at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:517)
        at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
        at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:159)
        at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:45)
        at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:613)
        at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
        at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:184)
        at weblogic.application.internal.SingleModuleDeployment.prepare(SingleModuleDeployment.java:43)
        at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:154)
        at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:60)
        at weblogic.deploy.internal.targetserver.operations.ActivateOperation.createAndPrepareContainer(ActivateOperation.java:207)
        at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doPrepare(ActivateOperation.java:98)
        at weblogic.deploy.internal.targetserver.operations.AbstractOperation.prepare(AbstractOperation.java:217)
        at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentPrepare(DeploymentManager.java:747)
        at weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploymentList(DeploymentManager.java:1216)
        at weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare(DeploymentManager.java:250)
        at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.prepare(DeploymentServiceDispatcher.java:159)
        at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doPrepareCallback(DeploymentReceiverCallbackDeliverer.java:171)
        at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$000(DeploymentReceiverCallbackDeliverer.java:13)
        at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$1.run(DeploymentReceiverCallbackDeliverer.java:46)
        at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
    Caused By: java.lang.NoSuchMethodError: javax/persistence/spi/PersistenceUnitInfo.getValidationMode()Ljavax/persistence/ValidationMode;
        at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:621)
        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.(BasePersistenceUnitInfoImpl.java:158)
        at weblogic.deployment.PersistenceUnitInfoImpl.(PersistenceUnitInfoImpl.java:39)
        at weblogic.deployment.AbstractPersistenceUnitRegistry.storeDescriptors(AbstractPersistenceUnitRegistry.java:349)
        at weblogic.deployment.AbstractPersistenceUnitRegistry.loadPersistenceDescriptors(AbstractPersistenceUnitRegistry.java:124)
        at weblogic.deployment.ModulePersistenceUnitRegistry.(ModulePersistenceUnitRegistry.java:58)
        at weblogic.servlet.internal.WebAppModule.setupPersistenceUnitRegistry(WebAppModule.java:1790)
        at weblogic.servlet.internal.WebAppServletContext.initClassLoader(WebAppServletContext.java:3028)
        at weblogic.servlet.internal.WebAppServletContext.(WebAppServletContext.java:447)
        at weblogic.servlet.internal.WebAppServletContext.(WebAppServletContext.java:493)
        at weblogic.servlet.internal.HttpServer.loadWebApp(HttpServer.java:418)
        at weblogic.servlet.internal.WebAppModule.registerWebApp(WebAppModule.java:972)
        at weblogic.servlet.internal.WebAppModule.prepare(WebAppModule.java:382)
        at weblogic.application.internal.flow.ScopedModuleDriver.prepare(ScopedModuleDriver.java:176)
        at weblogic.application.internal.flow.ModuleListenerInvoker.prepare(ModuleListenerInvoker.java:199)
        at weblogic.application.internal.flow.DeploymentCallbackFlow$1.next(DeploymentCallbackFlow.java:517)
        at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
        at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:159)
        at weblogic.application.internal.flow.DeploymentCallbackFlow.prepare(DeploymentCallbackFlow.java:45)
        at weblogic.application.internal.BaseDeployment$1.next(BaseDeployment.java:613)
        at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:52)
        at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:184)
        at weblogic.application.internal.SingleModuleDeployment.prepare(SingleModuleDeployment.java:43)
        at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:154)
        at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:60)
        at weblogic.deploy.internal.targetserver.operations.ActivateOperation.createAndPrepareContainer(ActivateOperation.java:207)
        at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doPrepare(ActivateOperation.java:98)
        at weblogic.deploy.internal.targetserver.operations.AbstractOperation.prepare(AbstractOperation.java:217)
        at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentPrepare(DeploymentManager.java:747)
        at weblogic.deploy.internal.targetserver.DeploymentManager.prepareDeploymentList(DeploymentManager.java:1216)
        at weblogic.deploy.internal.targetserver.DeploymentManager.handlePrepare(DeploymentManager.java:250)
        at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.prepare(DeploymentServiceDispatcher.java:159)
        at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doPrepareCallback(DeploymentReceiverCallbackDeliverer.java:171)
        at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$000(DeploymentReceiverCallbackDeliverer.java:13)
        at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$1.run(DeploymentReceiverCallbackDeliverer.java:46)
        at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:528)
        at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
        at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)

anybody know ?

( error while deploying in weblogic 11g)
1 ) what is the error ?
2 ) what is reasons of this error ?
3 ) in war file having needed jar file. does n't take it ?
4 ) is it any jar conflict ?

Equilibrate answered 3/11, 2011 at 5:25 Comment(4)
I have not used Weblogic but since it is a JEE container it must have an implementacion of EJB which might be conflicting with your JPA classes. Tomcat is only a Servlet container which does not have jars for JPA or EJB. In these days, IDEs like Netbeans take into account the target server and generate different wars to avoid these conflicts.Shult
thnx you for replay... so .. you suggest to remove jap related jar Rt ?Equilibrate
My best shot would be to regenerate the war with a tool (IDE) aware of Weblogic capabilities. But if that is not an option... Well, JPA usually implies having at least two jars, one with the JPA API (usually something names simiilar to javax-persistence) and one with the implementation (this one should be the openjpa-persistence), and I don't think you should remove both. I guess that if you don't have any other leads it could not hurt to try ...Shult
what is your weblogic version? versions up to 10.3.3 don't have out of the box JPA 2.0 support, and will prefer loading its own JPA interfaces no matter what you put in your war file. wiki.eclipse.org/EclipseLink/Development/JPA_2.0/…Muezzin
T
10

Add this to your weblogic.xml file:

<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app ...>
    ...
    <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-web-app>

I tried with the <prefer-web-inf-classes>true</prefer-web-inf-classes>, with no luck. I'm using Weblogic 11g (10.3.6), Hibernate 4.1.9 and Spring 3.2.1. With this, persistence works like a charm!

Source here.

Theriot answered 18/2, 2013 at 12:29 Comment(1)
@jelies, I have the same problem. The weblogic.xml is configured as you provided, but it throw a error:java.lang.IllegalArgumentException: interface javax.persistence.EntityManagerFactory is not visible from class loader at java.lang.reflect.Proxy.getProxyClass(Proxy.java:373) at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:601) at weblogic.deployment.BasePersistenceUnitInfoImpl.initializeEntityManagerFactory(BasePersistenceUnitInfoImpl.java:412)Savoirfaire
C
6

Add a weblogic.xml file to the web-inf and place the following in it

<?xml version="1.0" encoding="UTF-8"?>
<weblogic-web-app xmlns="http://www.bea.com/ns/weblogic/weblogic-web-app">
<container-descriptor>
        <prefer-web-inf-classes>true</prefer-web-inf-classes>
    </container-descriptor>
</weblogic-web-app>`
Christadelphian answered 15/5, 2012 at 18:31 Comment(0)
T
0

It could also mean that the dependency you are including may be dependent on an incompatible dependency with your project. for example.. in maven you can do use the "exclusions" tag to not package the offending dependency in your war by doing something like this:

<dependency>
    <groupId>com.ibm.websphere</groupId>
    <artifactId>wxsutils</artifactId>
    <version>2.5.4-SNAPSHOT</version>
            <exclusions>
                  <exclusion>
                    <groupId>org.apache.geronimo.specs</groupId>
                    <artifactId>geronimo-jpa_3.0_spec</artifactId>
                 </exclusion>
            </exclusions>
</dependency>
Terra answered 11/8, 2014 at 16:23 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.