NTEventLogAppender (библиотека уже загружена в другой ClassLoader)

У меня есть такой файл log4j.properties в моем пакете src:

log4j.rootLogger=DEBUG, CA, EVA 

#Console Appender 
log4j.appender.CA=org.apache.log4j.ConsoleAppender 
log4j.appender.CA.layout=org.apache.log4j.PatternLayout 
log4j.appender.CA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n 

#Event Viewer Appender
log4j.appender.EVA=org.apache.log4j.nt.NTEventLogAppender
log4j.appender.EVA.layout=org.apache.log4j.PatternLayout
log4j.appender.EVA.source=MySource
log4j.appender.EVA.layout.ConversionPattern=[%c][%l][%p][%thread]: %m%n

Я создаю регистратор на интерфейсе (LogInterface.java) следующим образом:

package components;

import org.apache.log4j.Logger;

public interface LogInterface {

    static final Logger logger = Logger.getLogger("MyLogger");

}

Я помещаю NTEventLogAppender.dll в:

C:\Program Files (x86)\IBM\WID7_WTE\runtimes\bi_v7\java\jre\bin

Иногда я получаю следующую ошибку, когда есть исключение для журнала:

NTEventLogAppender (библиотека уже загружена в другой ClassLoader)

Как я могу решить эту проблему?

Спасибо


person RedEagle    schedule 05.07.2011    source источник


Ответы (1)


Решение этой проблемы состояло в том, чтобы поместить JAR-файл log4j в:

Application_Server_Install_Path\lib

В проекте я добавил JAR-файл log4j в путь сборки проекта в качестве переменной (опция добавления переменной)

Это решает проблему со ссылкой на JAR в среде IDE, остается только добавить предыдущую ссылку на JAR-файл log4j во время выполнения сервера приложений Websphere.

Для этого я получил доступ к консоли администрирования WAS и добавил предыдущий путь к JAR-файлу log4j в разделе:

Окружающая среда -> Общие библиотеки

Несмотря на то, что ни у кого, кажется, нет такой же проблемы, вот решение для будущих подобных проблем

Спасибо

person RedEagle    schedule 11.07.2011