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)

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

Спасибо

1 ответ

Решение

Решением этой проблемы было размещение файла JAR log4j под:

Application_Server_Install_Path \ Lib

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

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

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

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

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

Спасибо

Другие вопросы по тегам