0

私はSpring 4.0を使用しており、Hello Worldの例から始めました。例を実行すると、この例外が発生しました。

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
    at org.springframework.context.support.AbstractApplicationContext.<init>(AbstractApplicationContext.java:153)
    at org.springframework.context.support.GenericApplicationContext.<init>(GenericApplicationContext.java:100)
    at org.springframework.context.annotation.AnnotationConfigApplicationContext.<init>(AnnotationConfigApplicationContext.java:60)
    at org.springframework.context.annotation.AnnotationConfigApplicationContext.<init>(AnnotationConfigApplicationContext.java:82)
    at hello.service.main.Main.main(Main.java:14)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
    at java.net.URLClassLoader$1.run(Unknown Source)
    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)
    ... 5 more

しかし、コモンズ ロギングを使用しておらず、slf4j を使用したい場合は、クラスパスに slf4j ロギング jar を追加するだけでよいと読みました。私もそれを追加しました。

問題を解決するために私を助けてください。

4

3 に答える 3

1

slf4j を使用するには、pom.xml に次の一連の依存関係を含める必要があります。

     <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>4.0.0.RELEASE</version>
        <scope>runtime</scope>
        <exclusions>
            <exclusion>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>jcl-over-slf4j</artifactId>
        <version>1.5.8</version>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.5.8</version>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.5.8</version>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.14</version>
        <scope>runtime</scope>
    </dependency>
于 2013-12-24T09:32:04.737 に答える
0

commons-logging.jar をダウンロードしてクラスパスに追加します。

http://commons.apache.org/proper/commons-logging/download_logging.cgi

zip ファイル commons-logging-1.1.3-bin.zip をダウンロードして commons-logging.jar を抽出し、それをクラスパスに追加すると、問題が解決します。

于 2013-12-24T09:08:30.137 に答える
0

jcl-over-slf4j.jarファイルをライブラリに追加するだけです。詳細については、 slf4j ドキュメントを参照してください。

于 2013-12-24T09:39:26.663 に答える