Fehler beim instanziieren SLF4J LoggerFactory auf Frühjahr 'mvc-basic" - Lehrgang
Ich versuche eine Frühjahr 3.x-tutorial auf Eclipse 3.7 mit m2e und Maven Integration for WTP-plugins installiert.
Konvertierte ich das obige tutorial zu Maven-Projekt, aber wenn ich das Deployment der Webanwendung bekomme ich die folgende exception:
Failed to instantiate SLF4J LoggerFactory
Reported exception:
java.lang.NoClassDefFoundError: org/apache/log4j/Level
Meine pom.xml Aussehen:
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.springframework.samples</groupId>
<artifactId>mvc-basic</artifactId>
<name>mvc-basic</name>
<packaging>war</packaging>
<version>1.0.0-SNAPSHOT</version>
<properties>
<org.springframework.version>3.0.5.RELEASE</org.springframework.version>
<org.slf4j.version>1.6.1</org.slf4j.version>
</properties>
<dependencies>
<!-- Spring -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${org.springframework.version}</version>
<exclusions>
<!-- Exclude Commons Logging in favor of SLF4j -->
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${org.springframework.version}</version>
</dependency>
<!-- Logging -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${org.slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${org.slf4j.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>${org.slf4j.version}</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
<scope>runtime</scope>
</dependency>
<!-- JSR 303 with Hibernate Validator -->
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>1.0.0.GA</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>4.1.0.Final</version>
</dependency>
<!-- Joda Time -->
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>1.6.2</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time-jsptags</artifactId>
<version>1.0.2</version>
<scope>runtime</scope>
</dependency>
<!-- Servlet -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
<!-- Test -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.7</version>
<scope>test</scope>
</dependency>
</dependencies>
<repositories>
<!-- For Hibernate Validator -->
<repository>
<id>org.jboss.repository.release</id>
<name>JBoss Maven Release Repository</name>
<url>https://repository.jboss.org/nexus/content/repositories/releases</url>
<snapshots><enabled>false</enabled></snapshots>
</repository>
</repositories>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
<showWarnings>true</showWarnings>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<warName>mvc-basic</warName>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>install</id>
<phase>install</phase>
<goals>
<goal>sources</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
Ich habe auch überprüft, die in 'Projekt-Eigenschaften' -> 'Java Build Path' -> "Bibliotheken", aber das nur log4j jar, die ich gefunden habe ist das man unter 'Maven-Abhängigkeiten'
Scheint, wie ich bin Durcheinander mit Gläsern, aber ich kann nicht finden, eine Lösung von mir.
es ist ein weiterer pom-Eintrag für slf <Abhängigkeit> <groupId>org.slf4j</groupId> <artifactId > slf4j-api</artifactId> <version>${org.slf4j.version}</version> <Anwendungsbereich>runtime</scope> </Abhängigkeit>
möglich, Duplikat der Wie zu beheben Ausnahme: Fehler beim instanziieren SLF4J LoggerFactory?
möglich, Duplikat der Wie zu beheben Ausnahme: Fehler beim instanziieren SLF4J LoggerFactory?
InformationsquelleAutor Piwakkio | 2012-02-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen zu reinigen das Projekt und die server in eclipse. Es sieht aus wie eine erfrischende problem.
Wenn Sie Maven (M2E) in Eclipse dann ist es richtig, dass die libs sind nur in der "Maven Abhängigkeiten".
Können Sie beginnen mit einem Spring Source Tool Suite Template-Projekt (maven-basiert), und dann kopieren Sie den code aus dem tutorial in diesem Projekt.
Wenn Sie Tomcat, dann Eclipse kopieren der libs auf
workspace\.metadata\.plugins\org.eclipse.wst.server.core\tmp<VERSION>\wtpwebapps\<PROJECT>\WEB-INF\lib
.Wenn die lib nicht vorhanden ist, und eclipse nicht kopieren, auch wenn Sie refersh jedes Ding. Dann ist manchmal das Letzte, was Sie tun können, ist, Entfernen Sie das Projekt aus dem server (in der "Hinzufügen und Entfernen von..." - Dialog), drücken Sie auf Fertig stellen, und fügen Sie das Projekt erneut.
Hat das Projekt kompilieren? (Keine Fehlermeldungen in der Problems-view)?
nur zwei Warnungen, die sagen, das jdk ist nicht "streng kompatibel' (1.7 statt 1.5) und einem static final UID fehlt in einer serialisierbaren Klasse
Warnungen sollten kein problem sein - versuchen Sie meinen Tipp mit dem entfernen und hinzufügen - wenn das nicht hilft, dann ist es nicht eine erfrischende problem. - Um dies zu überprüfen versuchen, um den Krieg mit maven von der Kommandozeile aus und stellen Sie die war-per hand.
Ich versuchte, machen eine STS-Vorlage-Projekt aus dem nichts und es läuft auf Tomcat, aber der gleiche Fehler occourred. Wie es scheint, ist nicht eine erfrischende problem.
InformationsquelleAutor Ralph
Sieht aus wie einige andere Bibliothek hat die Abhängigkeit von SLF4J. Erstellen Sie eine war-Datei und überprüfen Sie, ob SLF4J.jar verpackt in den Krieg. Wenn nicht, überprüfen Sie Ihren Anwendungsserver verwenden common-lib-Verzeichnis. Im Falle seines zu laden.
Überprüfen Sie den Dependency-Graphen pom.xml.
Im Falle dass, wenn Sie hinzufügen möchten, SLF4J log4j-API unten ist die Abhängigkeit.
InformationsquelleAutor Rajendra