Erkannt sowohl log4j-over-slf4j.jar UND slf4j-log4j12.jar auf dem class-path, der mit maven und spring boot
Ich weiß nicht, wie löse ich dieses Problem. Bitte werfen Sie einen Blick und wenn möglich lassen Sie mir, wie kann ich es lösen. Hier ist mein pom.xml - Datei.
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.1.5.RELEASE</version>
<relativePath /> <!-- lookup parent from repository -->
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-cypher-compiler-2.1</artifactId>
<version>2.1.2</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk</artifactId>
<version>1.8.9.1</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>15.0</version>
</dependency>
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-cypher-compiler-2.0</artifactId>
<version>2.0.3</version>
</dependency>
<dependency>
<groupId>org.neo4j</groupId>
<artifactId>neo4j-cypher-compiler-1.9</artifactId>
<version>2.0.3</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j</artifactId>
</dependency>
</dependencies>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<start-class>com.bluepi.util.backup.glacier.Application</start-class>
<java.version>1.7</java.version>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<useSystemClassLoader>false</useSystemClassLoader>
</configuration>
</plugin>
</plugins>
</build>
Ich bin grundsätzlich immer folgende Fehlermeldung:
Erkannt sowohl log4j-over-slf4j.jar UND slf4j-log4j12.jar auf den class-path, preempting StackOverflowError.
Siehe auch http://www.slf4j.org/codes.html#log4jDelegationLoop für mehr details.
- Mögliche Duplikate von: stackoverflow.com/q/20117720/1144203
- Es würde einen doppelten ein. Aber problem ist, ich weiß nicht, auf welche Abhängigkeit die AUSSCHLÜSSE angewendet werden sollte.
- Versuchen Sie, die erste Antwort auf diese Frage.
- Verwenden
mvn dependency:tree
um herauszufinden, was zieht, was. - Vielen Dank M. Deinum, Dass war hilfreich.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gehen Sie zu Ihrem pom.xml und auf die untere Registerkarte, und klicken Sie auf "Dependency-Hierarchie" Registerkarte. Von dort aus suchen log4j-over-slf4j. Schließen Sie alle Instanzen von dieser Abhängigkeit (Rechte Maustaste auf die Instanz und "Ausschließen Maven-Artefakt"). Nachdem Sie nicht mehr log4j-over-slf4j erscheinen und erneut gespeichert versuchen, um das Programm auszuführen. Wenn es immer noch nicht funktioniert dann die änderungen rückgängig machen Sie gerade gemacht (könnte klug sein, um ein backup Ihrer pom.xml am Anfang) und schließen Sie alle Instanzen von slf4j-log4j12.
Ich traf das gleiche problem bei der Arbeit mit Apache Storm . . . ein Beispiel, warum man arbeiten könnte und nicht die andere ist, wie Sturm zieht in der log4j-over-slf4j zur Laufzeit trotz der Tatsache, dass ich "Ausschließen log4j-over-slf4j" zu den Sturm-core Abhängigkeit
Lösen können Sie das problem durch hinzufügen
"sl4j over log4j"
im pom.xml