/ / Ich erhalte mehrere SLF4J-Bindungswarnungen und Fehler beim Starten von Handlern und NoSuchMethodError, wenn ich JAX-WS verwende - java, jax-ws, slf4j

Ich erhalte mehrere SLF4J-Bindungswarnungen und Fehler beim Starten von Handlern und NoSuchMethodError, wenn ich JAX-WS verwende - java, jax-ws, slf4j

ich bekomme Warnungen zu mehreren SLF4J-Bindungen und Fehler beim Starten der Handler und NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log (Lorg / slf4j / Marker; Ljava / lang / String; ILjava / lang / String; Ljava / lang / Throwable;) V

Alles war in Ordnung, als ich mit JAX-WS anfing, tauchte das ganze Geschäft auf.

Einer meiner Kollegen hat den gleichen Fehler bekommen, aber als er das Glas (jcl-over-slf4j-1.5.8) entfernt hat, ist es für ihn jetzt in Ordnung.

Aber ich habe gleich versucht, nicht für mich zu arbeiten.

Ich habe versucht, die folgenden Gläser einzeln aus meinem Klassenpfad zu entfernen: 1.slf4j-api-1.6.1.jar 2.slf4j-log4j12-1.6.1.jar und 3.slf4j-simple-1.5.8.jar, aber nein bewirken.

Als ich maven clean vor dem Ausführen von Jetty ausprobierte, zeigte es einen Buildfehler an und konnte nicht löschen (xmlsec-1.4.4.jar), entfernte ich dieses Jar manuell und erstellte immer noch nichts in meinem .M2-Repository.

Hier ist die Konsolenausgabe:

        2011-12-23 08:44:55.765:INFO::jetty-6.1.26
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/C:/My_workspace/my_portal            /MyPortal/trunk/MyPortalWebApp/src/main/webapp/WEB-INF/lib/slf4j-        log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/C:/My_workspace/MyPortal/trunk/MyPortalWebApp/src/main/webapp/WEB-INF/lib/slf4j-simple-1.5.8.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
2011-12-23 08:44:57.140:INFO:/MyPortalWebApp:Initializing Spring root WebApplicationContext
2011-12-23 08:44:57.140:WARN::failed org.mortbay.jetty.webapp.WebAppContext@c4fe76    {/MyPortalWebApp,C:My_workspaceMyPortaltrunkMyPortalWebAppsrcmainwebapp}: java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)V
2011-12-23 08:44:57.140:WARN::Error starting handlers
java.lang.NoSuchMethodError: org.slf4j.spi.LocationAwareLogger.log(Lorg/slf4j/Marker;Ljava/lang/String;ILjava/lang/String;Ljava/lang/Throwable;)V
at org.apache.commons.logging.impl.SLF4JLocationAwareLog.info(SLF4JLocationAwareLog.java:159)
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:187)
at org.springframework.web.context.ContextLoaderListener.contextInitialized        (ContextLoaderListener.java:47)
at org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:549)
at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
at org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1282)
at org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:518)
at org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:499)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
at org.mortbay.jetty.Server.doStart(Server.java:224)
at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
at runjettyrun.Bootstrap.main(Bootstrap.java:82)

Bitte geben Sie mir einige Informationen, bei denen ich viele Permutationen ausprobiert habe, aber beim Ausführen von Jetty die gleiche Ausgabe (wie oben) erhalten habe.

Antworten:

1 für die Antwort № 1

Maven enthält automatisch verschiedene Versionen von slf4j-api und entweder slf4j-log4j oder slf4j-logging. Sie können herausfinden, warum sie enthalten sind, indem Sie Folgendes eingeben:

mvn dependency:tree -Dincludes=org.slf4j

Da Sie Jetty verwenden, enthält Jetty möglicherweise auch den Klassenpfad des Containers in Ihrer App. Versuchen Sie, die folgende Zeile (wenn es sich um Jetty 6 oder älter handelt) zur Kontextdatei Ihrer Webanwendung hinzuzufügen:

<Set name="parentLoaderPriority">false</Set>

Die Container-Jars und -Ressourcen sollten eine niedrigere Priorität als die Ihrer Webapp haben.


0 für die Antwort № 2

Du hast noch slf4j-simple-1.5.8.jar in deinem Klassenpfad (um src/main/webapp/WEB-INF/lib/slf4j-simple-1.5.8.jar) laut Fehlermeldung. Welches Tool (Ant, Maven) verwenden Sie für Ihren Build-Prozess?


0 für die Antwort № 3

Es scheint, als würde dies durch das Laden inkompatibler Versionen von slf4j verursacht

-Öffnen Sie in Eclipse die Datei pom.xml. -Wählen Sie unten die Registerkarte Abhängigkeitshierarchie. - Geben Sie im Suchfilter den Namen "slf4j" ein und sehen Sie alle Abhängigkeiten, die für die Protokollierung von slf4j abhängen.

Wenn Sie mehrmals finden, können Sie dies ausschließen, indem Sie dies in jede Abhängigkeit schreiben


& ltexclusions> & ltexclusion> & ltartifactId> [artifactId] & lt / artifactId> & ltgroupId> [groupId] & lt / groupId> & lt / ausschluss> & lt / exclusions>