java.lang.NoSuchMethodError: org.jboss.logging.Logger.getMessageLogger в Tomcat (Ubuntu 16.04)

Я получаю это исключение, когда пытаюсь развернуть файл .war в Tomcat.

java.lang.NoSuchMethodError: org.jboss.logging.Logger.getMessageLogger(Ljava/lang/Class;Ljava/lang/String;)Ljava/lang/Object;
        at org.hibernate.ejb.Ejb3Configuration.<clinit>(Ejb3Configuration.java:142)
        at org.hibernate.ejb.HibernatePersistence.createEntityManagerFactory(HibernatePersistence.java:55)
        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:63)
        at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)

Помните, что:

- Тот же файл .war уже работает на другом сервере (Linux OpenSuse)

-Я скопировал папку Tomcat (все сервера) со старого сервера (OpenSuse) на новый сервер (Ubuntu 16.04). Таким образом, файлы одинаковы.

-JVM одинакова на обоих серверах.

- Исключение не происходит во время разработки (в Eclipse).

Мои вопросы:

-Некоторые люди предложили мне изменить мои файлы maven pom. Имеет ли это смысл? Потому что, как я уже сказал, .war уже работает на сервере OpenSuse.

-Смогу ли я развернуть тот же .war без каких-либо изменений. Разве я не должен?


person Rodrigo    schedule 04.04.2018    source источник
comment
Вы убедились, что недостающая часть действительно присутствует в вашей войне? Возможная причина может заключаться в том, что он настроен на доступность во время выполнения, а ваша установка Tomcat не предоставляет его.   -  person DennisV    schedule 04.04.2018
comment
Он присутствует! Как я уже сказал выше, я скопировал весь каталог Tomcat с сервера OpenSuse на новый сервер Ubuntu. Оба каталога Tomcat одинаковы на разных серверах Linux.   -  person Rodrigo    schedule 04.04.2018
comment
Вы уверены, что на новом сервере tomcat нет других библиотек? Кажется, что класс находится в пути к классам с разными (или несколькими) версиями.   -  person DennisV    schedule 04.04.2018
comment
Да, я уверен, потому что я скопировал и вставил каталог tomcat со старого сервера Linux на новый. Если бы у меня были другие библиотеки на новом сервере Linux, они бы не работали и на старом.   -  person Rodrigo    schedule 04.04.2018
comment
Похоже, вы используете неправильную версию JBoss Logging с Hibernate. Какие версии Hibernate и JBoss Logging находятся на пути вашего класса?   -  person James R. Perkins    schedule 06.04.2018


Ответы (1)


На сервере отсутствует по крайней мере одна из библиотек, о которой вы получаете сообщение об ошибке.

Проверьте все библиотеки в переменных $PATH, которые вы используете на сервере, и они работают.

Надеюсь это поможет!

С уважением, Эби

person Eby Jacob    schedule 05.04.2018
comment
Вот что у меня есть на работающей машине: ip-10-2-1-9:~ # echo $PATH /sbin:/usr/sbin:/usr/local/sbin:/root/bin:/usr/ local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games:/usr/lib/jvm/jre/bin Вот что у меня на новой коробке root@ip-10-2 -1-20:~$ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/ игры Вы об этом? Мы на одной волне? - person Rodrigo; 06.04.2018