ошибка log4j в jboss из-за различий в версиях

Мы развертываем наше приложение из скомпилированного кода maven в JBoss.

Maven умеет компилировать код, и им делятся люди. Кроме того, он использует log4j версию 1.2.16. В JBoss сборка приложения прошла успешно, но веб-страница не открывается.

JBoss имеет log4j.jar в папках server\default\lib и client. Кроме того, log4jboot.jar находится в папке client.

Поскольку он не работает с открытием веб-страницы, я изменил все файлы журналов в JBoss на версию 1.2.16.

Теперь приложение запущено, и веб-страница работает, но я не могу увидеть подробности журнала в командной строке сервера.

В настоящее время это ошибка:

failed to initialize plugin org.jboss.logging.log4jloggerplugin

Может ли кто-нибудь дать представление об этом?

Изменить:

С log4jboot.jar ошибка 500:

type Exception report

// message:

 The server encountered an internal error () that prevented it from fulfilling this request.

// exception:

javax.servlet.ServletException: Filter execution threw an exception
    org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)


// root cause:

java.lang.NoSuchMethodError: org/apache/log4j/MDC.clear()V

person pratap m    schedule 01.03.2013    source источник
comment
Вы не должны заменять log4jboot.jar. Опубликуйте подробности, почему он не запустился со старым log4j.   -  person Vadzim    schedule 01.03.2013
comment
@Vadzim Я редактировал...   -  person pratap m    schedule 01.03.2013
comment
Отсутствует версия JBoss. Вы пытались просто обновить log4j.jar до 1.2.16 и оставить оригинальный log4jboot.jar?   -  person Vadzim    schedule 01.03.2013
comment
это то, что я сделал до редактирования 1   -  person pratap m    schedule 04.03.2013
comment
У нас есть рабочие настройки JBoss 4.2.x с оригинальным log4j-boot.jar и обновленным server/default/lib/log4j.jar. Вы можете использовать -verbose:class, чтобы убедиться, что никакая другая устаревшая копия log4j не имеет приоритета в пути к классам.   -  person Vadzim    schedule 04.03.2013
comment
я новичок в этом ... не могли бы вы уточнить, что именно вы говорите ... ссылка может помочь помимо вашей разработки ... заранее спасибо   -  person pratap m    schedule 06.03.2013
comment
Я предполагаю, что у вас есть где-то в пути к классам еще одна старая копия log4j, которая скрывает обновленную. См. stackoverflow.com/questions/10230279/java-verbose-class-loading . Это может помочь отследить его.   -  person Vadzim    schedule 06.03.2013


Ответы (1)


Было бы полезно узнать, какую версию JBoss вы используете.

JBoss 5.1.0.GA поставляется с log4j версии 1.2.14. Метод MDC.clear() был представлен в версии 1.2.16, что объясняет ошибку NoSuchMethodError, которую вы получаете, если используете более старую версию JBoss.

Некоторые решения, чтобы попробовать:

  1. Удалите все случаи использования метода MDC.clear().
  2. Обновите свой сервер JBoss.
  3. Замените предоставленный jar log4j своим собственным.
person Jono    schedule 14.06.2013