2009-08-31 7 views
3

axis2에 webservice를 만들고 log4j를 로깅 용으로 사용했습니다. 나는 다음과 같은 오류를 요청이 WS에 대한 오면 언제든지납니다 :axis2와 함께 log4j를 사용하는 데 문제가 있습니다.

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의 다른 사본이없는 다음과 같이

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 [[email protected]] whereas object of type 
log4j:ERROR "org.apache.log4j.ConsoleAppender" was loaded by [WebappClassLoader 
    delegate: false 
    repositories: 
    /WEB-INF/classes/ 
----------> Parent Classloader: 
[email protected] 
]. 
log4j:ERROR Could not instantiate appender named "CONSOLE". 
[ERROR] java.lang.NullPointerException 

내 log4j.properties

입니다 내 아아에서.

누군가이 초기화 오류가 발생하는 이유는 무엇입니까? 사전에

감사합니다, PJ는

답변

13

당신은 Jar Hell에 있습니다. 두 개의 서로 다른 클래스 로더에 의해로드되는 log4j jar의 2 개 이상의 버전이 있다고 의심됩니다. 유사한 문제가 발생했지만 다른 오류 메시지 였지만 스캔을했고 내 컴퓨터에 log4j를 7 회 발견했습니다. Yikes!

어떻게 피 하시겠습니까? 그 중 하나를 제외하고 모두 제거하십시오.

그것은 나를 위해 일했습니다.

+0

안녕하세요! 답장을 보내 주셔서 감사합니다. 나는 이것을 체크했을 때 다른 버전의 log4j를 가지고 있었기 때문에 그것을 다른 이름으로 바꾸고 바람둥이를 다시 시작했지만 여전히 같은 문제가있다. (다른 것들은 내가 다시 시작해야 할 수도 있다고 생각한다.) –

+1

내가 떨어 뜨린다. 가장 오래된 log4j jar 파일. 클래스 패스에서 가장 최신의 것을 유지하십시오. –

+4

jar 파일의 이름은 바꾸지 만 .jar 확장자를 유지하면 아무런 영향을 미치지 않습니다. –

1

이전 jar 파일을 삭제하고 Tomcat 서버를 다시 시작했습니다. 오류가 사라졌습니다. 당신의 도움을 주셔서 감사합니다!

관련 문제