Проблема с использованием log4j с axis2 - PullRequest
3 голосов
/ 01 сентября 2009

Я создал веб-сервис на axis2 и использовал log4j для регистрации. Каждый раз, когда приходит запрос на этот WS, я получаю следующую ошибку:

log4j:ERROR A "org.apache.log4j.ConsoleAppender" object is not assignable to a "org.apache.log4j.Appender" variable.
log4j:ERROR The class "org.apache.log4j.Appender" was loaded by 
log4j:ERROR [org.apache.catalina.loader.StandardClassLoader@7f342545] whereas object of type 
log4j:ERROR "org.apache.log4j.ConsoleAppender" was loaded by [WebappClassLoader
  delegate: false
  repositories:
    /WEB-INF/classes/
----------> Parent Classloader:
org.apache.catalina.loader.StandardClassLoader@7f342545
].
log4j:ERROR Could not instantiate appender named "CONSOLE".
[ERROR] java.lang.NullPointerException

Мой log4j.properties выглядит следующим образом:

log4j.rootCategory=INFO, CONSOLE
#log4j.rootCategory=INFO, CONSOLE, LOGFILE

# Set the enterprise logger priority to FATAL
log4j.logger.org.apache.axis2.enterprise=FATAL
log4j.logger.de.hunsicker.jalopy.io=FATAL
log4j.logger.httpclient.wire.header=FATAL
log4j.logger.org.apache.commons.httpclient=FATAL

# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
log4j.appender.CONSOLE.layout.ConversionPattern=[%p] %m%n

# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=axis2.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%d [%t] %-5p %c %x - %m%n

и у меня нет других копий log4j.properties где-либо в моем ааре.

Кто-нибудь знает, почему я получаю эту ошибку инициализации?

Спасибо заранее, PJ

Ответы [ 2 ]

13 голосов
/ 01 сентября 2009

Вы находитесь в Jar Hell . Я подозреваю, что проблема в том, что у вас есть две или более версии jar log4j, загружаемых двумя разными загрузчиками классов. Однажды у меня была похожая проблема, хотя это было другое сообщение об ошибке. Я сделал сканирование и нашел 7 vevrsions log4j на моей машине. Хлоп!

Как этого избежать? Устранить все, кроме одного из них.

Это сработало для меня.

1 голос
/ 08 сентября 2009

Я удалил старый jar и перезапустил сервер Tomcat. Ошибка ушла. Спасибо за вашу помощь!

...