2015-10-29 3 views
0

Ainsi, j'ai eu une application web Spring 4.2.2.RELEASE MVC réussie fonctionnant avec Hibernate 4.3.8.Final. J'ai changé à Hibernate 5.0.2.Final, et j'ai fait les changements suivants à mon dossier de contexte d'application de ressort.Spring 4 et Hibernate 5 donne NoSuchMethodError org.hibernate.internal.CoreMessageLogger

De:

<bean id="sessionFactory" 
    class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> 

Pour:

<bean id="sessionFactory" 
    class="org.springframework.orm.hibernate5.LocalSessionFactoryBean"> 

Et de:

<bean id="transactionManager" 
    class="org.springframework.orm.hibernate4.HibernateTransactionManager"> 

Pour:

<bean id="transactionManager" 
    class="org.springframework.orm.hibernate5.HibernateTransactionManager"> 

I ne trouve pas ce problème ailleurs sur le net. Je sais avec certitude que j'ai vérifié mon chemin de classe et il n'y a aucune autre référence Hibernate4 n'importe où dans cette application à n'importe quel niveau.

Lorsque je tente d'exécuter mon DaoTestCode, le contexte d'application Spring ne se charge pas à cause de ce message d'erreur:

java.lang.NoSuchMethodError: org.hibernate.internal.CoreMessageLogger.debug 

J'ai essayé de trouver d'autres endroits sur le net où il montre la configuration appropriée pour Hibernate 5 avec le printemps 4.2.2, et je ne trouve rien. Je sais que j'ai traversé une période difficile entre Hibernate 3 et Hibernate 4, et maintenant je veux migrer en conséquence. Je savais qu'il y aurait des points douloureux. Y a-t-il un moyen de résoudre ce problème et d'autres problèmes futurs dont je devrais être au courant?

Merci!

Répondre

3

mis à jour mon fichier pom mettre à jour tous mes pots de diagraphie au plus tard:

<!-- Logging Dependencies --> 
    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.17</version> 
     <exclusions> 
      <exclusion> 
       <groupId>com.sun.jdmk</groupId> 
       <artifactId>jmxtools</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>com.sun.jmx</groupId> 
       <artifactId>jmxri</artifactId> 
      </exclusion> 
      <exclusion> 
       <groupId>javax.jms</groupId> 
       <artifactId>jms</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-api</artifactId> 
     <version>1.7.12</version> 
    </dependency> 
    <dependency> 
     <groupId>org.jboss.logging</groupId> 
     <artifactId>jboss-logging</artifactId> 
     <version>3.3.0.Final</version> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-simple</artifactId> 
     <version>1.7.12</version> 
    </dependency> 

Et ce a résolu mon problème!

+0

J'ai travaillé pour moi! Merci beaucoup – 0bj3ct

+0

Cela a fonctionné pour moi et a permis à mon projet de redémarrer en passant de 4.3 à 5.2.13 – RESTfulGeoffrey

0

Je pense que c'est un problème de classpath.

Avez-vous vérifié les bibliothèques de votre serveur d'applications?

La méthode org.hibernate.internal.CoreMessageLogger.debug est héritée de org.jboss.logging.BasicLogger et a été ajouté puisqu'Hibernate 4. Avez-vous jboss-logging dans votre classpath avec la version droite?

Peut-être avez-vous hibernate 3 lib dans votre classpath?