java.lang.ClassNotFoundException:org.slf4j.impl.StaticLoggerBinder

java.lang.ClassNotFoundException : org.slf4j.impl.StaticLoggerBinder

問題

Wicket Webアプリケーションの起動中に、次のエラーメッセージがヒットします。

java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder
    at org.slf4j.LoggerFactory.getSingleton(LoggerFactory.java:223)
    at org.slf4j.LoggerFactory.bind(LoggerFactory.java:120)
    at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:111)
    at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:269)
    at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:242)
    ...
Caused by: java.lang.ClassNotFoundException: org.slf4j.impl.StaticLoggerBinder
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1516)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
    ... 31 more

溶液

Wicket開発では、SLF4j logging implementationを追加する必要があります。そうしないと、起動に失敗します。 これを修正するには、Mavenpom.xmlファイルでslf4jを宣言しました。

log4jを使用している場合、slf4j log4jバインディングを宣言します。


    org.slf4j
    slf4j-log4j12
    1.5.6

For non-Maven users
ライブラリをダウンロードして、プロジェクトのクラスパスに配置するだけです。