Кварц - проблемы с log4j на уровне приложений - PullRequest
0 голосов
/ 18 июля 2011

Я использую Weblogic 116, Ejb3.0, кварц-все 1.8.5.

У меня проблемы с кварцем при удалении jar log4j из каталога lib сервера.

Причина, по которой я не могу использовать log4j (в lib), заключается в том, что я хочу, чтобы у каждого развертывания в Weblogic были свои журналы. поэтому каждое развертывание имеет свой собственный jar log4j.

Грубо, что если положить log4j.jar в server/lib dir, то кварц работает нормально, но тогда я не могу иметь отдельные журналы для моих развертываний.

Когда я удаляю jar log4j из lib, это ошибка, которую я получаю из кварца:

java.lang.NoClassDefFoundError: org/apache/log4j/Level
    at org.slf4j.impl.StaticLoggerBinder.(StaticLoggerBinder.java:83)
    at org.slf4j.impl.StaticLoggerBinder.(StaticLoggerBinder.java:53)
    at org.slf4j.LoggerFactory.bind(LoggerFactory.java:122)
    at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:112)
    at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:268)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:241)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:254)

..

1 Ответ

0 голосов
/ 20 июля 2011

Несколько вариантов.

1) Разверните log4j.jar в качестве общей библиотеки или дополнительного пакета.http://download.oracle.com/docs/cd/E21764_01/web.1111/e13706/libraries.htm#i1064674 Затем обратитесь к log4j из вашего приложения.Если ваше приложение является EAR, то вы можете просто ссылаться на него как на общую библиотеку из weblogic-application.xml с элементом library-ref, и когда ваше приложение развернуто, log4j.jar добавляется в APP-INF / lib EAR,Если у вас есть WAR, то вы можете ссылаться на него как на необязательный пакет, изменив файл META-INF / manifest.mf: Extension-List: log4jjar log4jjar-Extension-Name: log4j

Где log4j - это имяразвертывания общей библиотеки / дополнительного пакета

2) Использование фильтрации загрузчиков классов в ранее развернутых приложениях.

...