m-namikiの日記

おもしろき こともなき世を おもしろく

commons loggingにハマる

プロジェクトで利用するバッチアプリの開発がほぼ終了したので実行してみたら、以下のようなエラーが発生した。(抜粋)

Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.impl.Log4JLogger
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClassInternal(Unknown Source)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Unknown Source)
        at org.apache.commons.logging.impl.LogFactoryImpl$1.run(LogFactoryImpl.java:447)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.apache.commons.logging.impl.LogFactoryImpl.loadClass(LogFactoryImpl.java:435)
        at org.apache.commons.logging.impl.LogFactoryImpl.getLogConstructor(LogFactoryImpl.java:376)
        ... 11 more

CLASSPATHもきちんと設定しているし、commons-loggingのjarも正常に配置している。なんなんだこれは・・・と途方にくれていたんだけど、commons-logging.propertiesをよく見てみたら、

org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger

の最後に半角スペースが一つだけくっついてた。まさかこれのはずないよなぁと思いながらもスペースを消して、実行してみたら。。。
動いた。
という訳で、半角スペースには気をつけようというお話。ぎゃふん。