2010-07-27 15 views
18

J'ai un gros problème avec Hibernate (utiliser avec couture) sur weblogic 10.3.java.lang.NoSuchMethodException: org.hibernate.validator.ClassValidator Seam weblogic 10.3

Quand je publie ma demande, je reçois cette erreur:

java.lang.NoSuchMethodException: org.hibernate.validator.ClassValidator.<init>(java.lang.Class, java.util.ResourceBundle, org.hibernate.validator.MessageInterpolator, java.util.Map, org.hibernate.annotations.common.reflection.ReflectionManager) 

Je lis sur le web que cette erreur peut provenir de Compatibily entre pot de mise en veille prolongée. Mais, j'ai lu la matrice et j'ai le bon pot avec une bonne version (hibernate-validator 3.1, hibernate-search 3.1, hibernate core 3.3.0)

Je n'ai pas idée de résoudre ce problème. Quelqu'un peut m'aider ?

Merci.

PS: Voici la trace complète de la pile:

weblogic.application.ModuleException: 
     at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1373) 
     at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:468) 
     at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:117) 
     at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204) 
     at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37) 
     at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60) 
     at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:27) 
     at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:635) 
     at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37) 
     at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:212) 
     at weblogic.application.internal.EarDeployment.activate(EarDeployment.java:16) 
     at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:162) 
     at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:79) 
     at weblogic.deploy.internal.targetserver.operations.AbstractOperation.activate(AbstractOperation.java:569) 
     at weblogic.deploy.internal.targetserver.operations.ActivateOperation.activateDeployment(ActivateOperation.java:140) 
     at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doCommit(ActivateOperation.java:106) 
     at weblogic.deploy.internal.targetserver.operations.StartOperation.doCommit(StartOperation.java:143) 
     at weblogic.deploy.internal.targetserver.operations.AbstractOperation.commit(AbstractOperation.java:323) 
     at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentCommit(DeploymentManager.java:820) 
     at weblogic.deploy.internal.targetserver.DeploymentManager.activateDeploymentList(DeploymentManager.java:1227) 
     at weblogic.deploy.internal.targetserver.DeploymentManager.handleCommit(DeploymentManager.java:436) 
     at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.commit(DeploymentServiceDispatcher.java:163) 
     at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doCommitCallback(DeploymentReceiverCallbackDeliverer.java:181) 
     at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:12) 
     at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:67) 
     at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516) 
     at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201) 
     at weblogic.work.ExecuteThread.run(ExecuteThread.java:173) 
    java.lang.NoSuchMethodException: org.hibernate.validator.ClassValidator.<init>(java.lang.Class, java.util.ResourceBundle, org.hibernate.validator.MessageInterpolator, java.util.Map, org.hibernate.annotations.common.reflection.ReflectionManager) 
     at java.lang.Class.getConstructor0(Class.java:2706) 
     at java.lang.Class.getDeclaredConstructor(Class.java:1985) 
     at org.hibernate.cfg.AnnotationConfiguration.secondPassCompile(AnnotationConfiguration.java:352) 
     at org.hibernate.cfg.Configuration.buildMappings(Configuration.java:1148) 
     at org.hibernate.ejb.Ejb3Configuration.buildMappings(Ejb3Configuration.java:1226) 
     at org.hibernate.ejb.EventListenerConfigurator.configure(EventListenerConfigurator.java:159) 
     at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:854) 
     at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:191) 
     at org.hibernate.ejb.Ejb3Configuration.configure(Ejb3Configuration.java:253) 
     at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:125) 
     at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:83) 
     at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:60) 
     at org.jboss.seam.persistence.EntityManagerFactory.createEntityManagerFactory(EntityManagerFactory.java:81) 
     at org.jboss.seam.persistence.EntityManagerFactory.startup(EntityManagerFactory.java:50) 
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
     at java.lang.reflect.Method.invoke(Method.java:597) 
     at org.jboss.seam.util.Reflections.invoke(Reflections.java:22) 
     at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:144) 
     at org.jboss.seam.Component.callComponentMethod(Component.java:2257) 
     at org.jboss.seam.Component.callCreateMethod(Component.java:2172) 
     at org.jboss.seam.Component.newInstance(Component.java:2132) 
     at org.jboss.seam.contexts.Contexts.startup(Contexts.java:304) 
     at org.jboss.seam.contexts.Contexts.startup(Contexts.java:278) 
     at org.jboss.seam.contexts.ServletLifecycle.endInitialization(ServletLifecycle.java:116) 
     at org.jboss.seam.init.Initialization.init(Initialization.java:740) 
     at org.jboss.seam.servlet.SeamListener.contextInitialized(SeamListener.java:36) 
     at weblogic.servlet.internal.EventsManager$FireContextListenerAction.run(EventsManager.java:465) 
     at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321) 
     at weblogic.security.service.SecurityManager.runAs(Unknown Source) 
     at weblogic.servlet.internal.EventsManager.notifyContextCreatedEvent(EventsManager.java:175) 
     at weblogic.servlet.internal.WebAppServletContext.preloadResources(WebAppServletContext.java:1785) 
     at weblogic.servlet.internal.WebAppServletContext.start(WebAppServletContext.java:3005) 
     at weblogic.servlet.internal.WebAppModule.startContexts(WebAppModule.java:1371) 
     at weblogic.servlet.internal.WebAppModule.start(WebAppModule.java:468) 
     at weblogic.application.internal.flow.ModuleListenerInvoker.start(ModuleListenerInvoker.java:117) 
     at weblogic.application.internal.flow.ModuleStateDriver$3.next(ModuleStateDriver.java:204) 
     at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37) 
     at weblogic.application.internal.flow.ModuleStateDriver.start(ModuleStateDriver.java:60) 
     at weblogic.application.internal.flow.StartModulesFlow.activate(StartModulesFlow.java:27) 
     at weblogic.application.internal.BaseDeployment$2.next(BaseDeployment.java:635) 
     at weblogic.application.utils.StateMachineDriver.nextState(StateMachineDriver.java:37) 
     at weblogic.application.internal.BaseDeployment.activate(BaseDeployment.java:212) 
     at weblogic.application.internal.EarDeployment.activate(EarDeployment.java:16) 
     at weblogic.application.internal.DeploymentStateChecker.activate(DeploymentStateChecker.java:162) 
     at weblogic.deploy.internal.targetserver.AppContainerInvoker.activate(AppContainerInvoker.java:79) 
     at weblogic.deploy.internal.targetserver.operations.AbstractOperation.activate(AbstractOperation.java:569) 
     at weblogic.deploy.internal.targetserver.operations.ActivateOperation.activateDeployment(ActivateOperation.java:140) 
     at weblogic.deploy.internal.targetserver.operations.ActivateOperation.doCommit(ActivateOperation.java:106) 
     at weblogic.deploy.internal.targetserver.operations.StartOperation.doCommit(StartOperation.java:143) 
     at weblogic.deploy.internal.targetserver.operations.AbstractOperation.commit(AbstractOperation.java:323) 
     at weblogic.deploy.internal.targetserver.DeploymentManager.handleDeploymentCommit(DeploymentManager.java:820) 
     at weblogic.deploy.internal.targetserver.DeploymentManager.activateDeploymentList(DeploymentManager.java:1227) 
     at weblogic.deploy.internal.targetserver.DeploymentManager.handleCommit(DeploymentManager.java:436) 
     at weblogic.deploy.internal.targetserver.DeploymentServiceDispatcher.commit(DeploymentServiceDispatcher.java:163) 
     at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.doCommitCallback(DeploymentReceiverCallbackDeliverer.java:181) 
     at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer.access$100(DeploymentReceiverCallbackDeliverer.java:12) 
     at weblogic.deploy.service.internal.targetserver.DeploymentReceiverCallbackDeliverer$2.run(DeploymentReceiverCallbackDeliverer.java:67) 
     at weblogic.work.SelfTuningWorkManagerImpl$WorkAdapterImpl.run(SelfTuningWorkManagerImpl.java:516) 
     at weblogic.work.ExecuteThread.execute(ExecuteThread.java:201) 
     at weblogic.work.ExecuteThread.run(ExecuteThread.java:173) 
    > 
+0

Essayez de nettoyer et de construire. – TaherT

+0

J'ai essayé cela, beaucoup de temps;) et rien n'a changé – Kiva

Répondre

13

Il se produit lorsque vous utilisez la version plus récente de mise en veille prolongée dans votre application en bocaux de mise en veille prolongée pré-emballés (qui viennent avec le serveur jboss) sont de l'ancienne version. Pour plus d'informations sur la mise à niveau correcte des fichiers hibernate jars de votre serveur d'applications, lisez this.

+1

brillant! Comment pouvez-vous le savoir? –

+4

Parce que j'ai traversé cette douleur. – user18943

+0

juste une petite question, savez-vous la meilleure façon d'éviter les conflits? Il semble que l'erreur quand le conflit se produit ne donne pas beaucoup d'information. –

12

J'ai résolu ce problème en ajoutant ces deux propriétés dans ma configuration hibernate.

<property name="hibernate.validator.apply_to_ddl">false</property> 
<property name="hibernate.validator.autoregister_listeners">false</property> 
+0

C'est tout !! A travaillé pour moi avec Hibernate 3.6.0.Final et JBoss 4.2.1.GA. Merci beaucoup !! – Donatello

+0

Vous avez sauvé ma journée ... comment l'avez-vous découvert? –

+0

est ce fichier de configuration Hibernate est présent dans le serveur? – dhroove

1

Si vous arrive de frapper cette question sur Weblogic Server, je l'ai résolu ce problème sur Weblogic 10.3.0.0 de placer le paquet org.hibernate-prefer-application-packages à weblogic-application.xml dans l'oreille:

<weblogic-application> 
    <prefer-application-packages> 
     <package-name>org.hibernate.*</package-name> 
    </prefer-application-packages> 
</weblogic-application> 

Avec un bon Cela permet d'éviter que Weblogic Server charge l'ancienne bibliothèque en conflit du chemin de classe du serveur et le fasse fonctionner comme prévu.