2015-10-29 2 views
0

Итак, у меня было успешное веб-приложение Spring 4.2.2.RELEASE MVC, работающее с Hibernate 4.3.8.Final. Я перешел на Hibernate 5.0.2.Final, и я внесла следующие изменения в файл контекстного приложения Spring.Spring 4 и Hibernate 5 дает NoSuchMethodError org.hibernate.internal.CoreMessageLogger

От:

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

To:

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

И от:

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

To:

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

I не может найти эту проблему нигде в сети. Я точно знаю, что я проверил свой путь к классу, и нет никакой другой справки Hibernate4 в любом месте этого приложения на любом уровне.

Когда я пытаюсь выполнить мою DaoTestCode, контекст Spring приложение не будет загружать из-за этого сообщения об ошибке:

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

Я пытался найти другие места в сети, где он показывает правильную конфигурацию для Hibernate 5 с весной 4.2.2, и я ничего не могу найти. Я знаю, что я пережил некоторую боль, идущую от Hibernate 3 до Hibernate 4, и теперь я хочу перейти на соответствующую работу. Я знал, что будут какие-то болевые точки. Есть ли способ решить эту проблему и любые другие будущие проблемы, о которых я должен знать?

Спасибо!

ответ

3

Обновлен мой файл POM, чтобы обновить все мои лесозаготовительных банки к последним:

<!-- 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> 

И это решить мою проблему!

+0

Работал для меня! Большое спасибо – 0bj3ct

+0

Это сработало для меня, и мой проект вернулся и работал при переходе с 4.3 до 5.2.13 – RESTfulGeoffrey

0

Я думаю, что это проблема с classpath.

Вы проверили ли вы на своем сервере приложений?

Метода org.hibernate.internal.CoreMessageLogger.debug наследуется от org.jboss.logging.BasicLogger и был добавлен, так как спящий режим 4. У вас есть JBoss-регистрация в вашем пути к классам с правой версией?

Возможно, у вас есть hibernate 3 lib в вашем пути к классу?

Смежные вопросы