Caused by: java.lang.NoClassDefFoundError: Could not initialize class org.apache.log4j.Log4jLoggerFa
2888 단어 필기
위에서 설명한 사이트 힌트 정보를 뒤적였습니다: The purpose of slf4j-log4j12 module is to delegate or redirect calls made to an SLF4J logger to log4j.The purpose of the log4j-over-slf4j module is to redirect calls made to a log4j logger to SLF4J. If SLF4J is bound with slf4j-log4j12.jar and log4j-over-slf4j.jar is also present on the class path, a StackOverflowError will inevitably occur immediately after the first invocation of an SLF4J or a log4j logger.
slf4j-log4j12는 SLF4J의 로그를 로그 4j를 통해 출력하는 에이전트나 리셋을 위한 것입니다. 로그 4j-over-slf4j의 목적은 로그 4j의 로그를 SLF4J로 다시 출력하는 것입니다. 만약 두 사람이 하나의class path에서 Stack Overflow의 오류를 일으킨다면, 두 사람이 사순환에 빠지기 때문입니다.SLF4J와 log4j를 모르는 학생은 다음과 같이 이동할 수 있습니다.http://www.importnew.com/7450.html자세히 읽다.
그래서 나는 프로젝트의 마벤트 의존을 찾았는데 3개의 의존 중 slf4j-log4j12가 나타났다는 것을 발견했다.jar, 모든 의존에:
<exclusions>
<exclusion>
<groupId>org.slf4jgroupId>
<artifactId>slf4j-log4j12artifactId>
exclusion>
exclusions>
결국 문제를 해결했다.
다시 테스트 용례를 뛰었을 때, 또 한 무더기의 오류가 보이지 않았다. SLF4J: Class path contains multiple SLF4J bindings.SLF4J: Found binding in [jar:file:/Users/wangzhiang/.m2/repository/ch/qos/logback/logback-classic/1.1.3/logback-classic-1.1.3.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: Found binding in [jar:file:/Users/wangzhiang/.m2/repository/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [ch.qos.logback.classic.util.ContextSelectorStaticBinder]
이유: SLF4J는 컴파일할 때 import org를 바인딩합니다.slf4j.impl.StaticLoggerBinder; 이 클래스에서는 구체적인 로그 방안에 대한 귀속 접속을 실현합니다.SLF4J 기반의 모든 실현에는 이런 종류가 있어야 한다.예를 들어 slf4j-log4j12-1.61은log4j에 대한 적당한 배합 실현을 제공한다.내 프로젝트에logback-classic-1.1.3과 slf4j-log4j12-1.61 두 개의 SLF4J를 실현하는 가방이 동시에 나타나면 위의 오류가 발생하고 의존하는 exclusion이 slf4j-log4j12를 제거하면 된다.
전재:http://www.tonitech.com/2464.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
static 간단한 설명static 방법은 일반적으로 정적 방법이라고 부른다. 정적 방법은 어떠한 대상에 의존하지 않고 접근할 수 있기 때문에 정적 방법에 있어this는 없다. 왜냐하면 그 어떠한 대상에도 의존하지 않기 때문이다. 대상이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.