Hibernate 5 + Glassfish 4.1.1: java.lang.NoSuchMethodError: org.jboss.logging.Logger.debugf(Ljava/lang/String;I)V

Когда я добавляю Hibernate 5 на свой веб-сайт, я не могу заставить его работать в Glassfish 4.1.1. я всегда получаю ошибку

java.lang.NoSuchMethodError: org.jboss.logging.Logger.debugf(Ljava/lang/String;I)V

Я попытался заменить библиотеку jboss-loging в папке модулей Glassfish, как я читал в ответе на аналогичную проблему, но это ничего не изменило. Я также пытался использовать Hibernate 4, но это дало другую ошибку.


person raichu    schedule 15.01.2016    source источник
comment
Кажется, jboss-logging банка недоступна. Проверьте это в своем пути к классам   -  person Subhrajyoti Majumder    schedule 15.01.2016
comment
Возможный дубликат Hibernate 5 java.lang.NoSuchMethodError org. jboss.logging.Logger.debugf   -  person JFPicard    schedule 15.01.2016


Ответы (3)


Попробуйте почистить папку Glassfish osgi-cache в вашем домене. Вы можете найти подробности в этой проблеме Payara github: https://github.com/payara/Payara/issues/554 (Payara — это форк Glassfish с дополнительными функциями, поэтому базовая механика остается такой же, как и в Glassfish)

person OndroMih    schedule 15.01.2016

В моем случае я запускал Hibernate 5 с аннотациями JPA на tomcat и перестал работать, когда перешел на Glassfish 4.1.

Ошибка:

hibernate.properties не найдено

Убедитесь, что src/main/resources/hibernate.cfg.xml существует

И если у вас есть только зависимость от hibernate-core, я использовал hibernate-annotations и hibernate-common-annotations, и это создавало конфликт. Hibernate 5 не нуждается в этих двух, я где-то читал. Попробуйте удалить;)

После этого появляется новая ошибка:

java.lang.NoSuchMethodError: org.jboss.logging.Logger.debugf(Ljava/lang/String;I)V

Причиной был самый старый файл jboss-logging.jar по адресу: "ВАША_GLASSFISH_FOLDER/glassfish/modules"

Почему? Hibernate 5 зависит от новейшей версии jboss-logging, а Glassfish 4 использует самую старую версию, даже если вы объявляете в своем POM-файле самую новую версию. На самом деле я использую:

org.jboss.logging jboss-logging 3.3.0.Final

Затем я загрузил его и заменил старый .jar внутри пути к модулям, и он вернулся к работе, я потратил 2 дня, пытаясь решить эту проблему, и надеюсь, что это поможет некоторым будущим проблемам = D

Я использовал эту ссылку, чтобы помочь мне: https://medium.com/@mertcal/using-hibernate-5-on-payara-cc242212a5d6#.npq2hdprz

Другое решение, в моем случае, могло бы вернуться к последней версии Hibernate 4 (4.3.11.Final), но, на мой взгляд, она уже слишком старая.

person Vitorlui    schedule 25.08.2016

У меня была аналогичная проблема, я смог ее исправить, создав файл glassfish-web.xml в каталоге WEB-INF. Содержимое файла показано ниже:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE glassfish-web-app PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Servlet 3.0//EN" "http://glassfish.org/dtds/glassfish-web-app_3_0-1.dtd">
<glassfish-web-app>
     <class-loader delegate="false"/>
</glassfish-web-app>

Это гарантирует, что Glassfish загружает не свои внутренние библиотеки, а библиотеки из вашего проекта.

person Shadow learner    schedule 08.08.2017