NoSuchMethodError: org/apache/log4j/Logger.setLevel(Lorg/apache/log4j/Level;)
Ich bin mit diesen log4j, slf4j und ch.qos.logback Abhängigkeiten in meinem pom.xml mein java-Projekt:
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.4</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>1.6.4</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
<version>1.6.4</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
<version>1.6.4</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.14</version>
</dependency>
Wollte ich mir kürzlich eine externe servlet-Bibliothek und definiert, dass die Abhängigkeit im pom. Die init-Methode dieses servlet sieht wie folgt aus:
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
....
public class HealthpageServlet extends HttpServlet{
private static final long serialVersionUID = 1L;
private final Logger logger = Logger.getLogger(HealthpageServlet.class.getName());
protected HealthpageService service;
public static final String VERSION = "Healthpage-Version 0.0.4";
public void init() throws ServletException {
logger.setLevel(Level.INFO);
.....
}
Meine Weblogic Server zeigt mir diese Ausnahme von der init-Methode, wenn ich den server starten:
java.lang.NoSuchMethodError:
org/apache/log4j/Logger.setLevel(Lorg/apache/log4j/Level;)V
Wenn ich in eclipse öffnen, HealthpageServlet jar-Inhalt, hat eine log4j-1.2.15-jar in das WEB-INF/lib-Ordner. Aber selbst wenn ich es ausschließen, dass eine Abhängigkeit von pom.xml ich sehe diese Ausnahme und mein server nicht starten. Was ist das problem?
InformationsquelleAutor akcasoy | 2015-07-08
Du musst angemeldet sein, um einen Kommentar abzugeben.
Da Sie die log4j-Version (1.2.15) von meiner externen jar nicht vereinbar war mit der slf4j-Version (1.6.4) von meinen Eltern-Projekt (wo logger.setLevel() ist nicht verfügbar), musste ich update meine slf4j auf version 1.7.7.
InformationsquelleAutor akcasoy