1

Mavenプロジェクトのビルド中に、以下に貼り付けたようにいくつかのエラーが発生します

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation

スタックオーバーフローの同様の投稿で見つかった解決策を試しましたが、それでもエラーが発生します。

これが私のpom.xmlです

<dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.7</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-test</artifactId>
            <version>${spring.framework.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jdbc</artifactId>
            <version>${spring.framework.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.framework.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-orm</artifactId>
            <version>3.0.5.RELEASE</version>
        </dependency>
        <dependency>
            <groupId>cglib</groupId>
            <artifactId>cglib-nodep</artifactId>
            <version>2.2</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate.javax.persistence</groupId>
            <artifactId>hibernate-jpa-2.0-api</artifactId>
            <version>1.0.1.Final</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-aop</artifactId>
            <version>${spring.framework.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.batch</groupId>
            <artifactId>spring-batch-core</artifactId>
            <version>${spring.batch.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.batch</groupId>
            <artifactId>spring-batch-infrastructure</artifactId>
            <version>${spring.batch.version}</version>
        </dependency>
        <dependency>
            <groupId>commons-beanutils</groupId>
            <artifactId>commons-beanutils</artifactId>
            <version>1.8.3</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>3.3.2.GA</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-annotations</artifactId>
            <version>3.4.0.GA</version>
        </dependency>
        <dependency>
            <groupId>javassist</groupId>
            <artifactId>javassist</artifactId>
            <version>3.9.0.GA</version>
        </dependency>
        <dependency>
            <groupId>commons-dbcp</groupId>
            <artifactId>commons-dbcp</artifactId>
            <version>1.2.2</version>
        </dependency>
        <dependency>
            <groupId>c3p0</groupId>
            <artifactId>c3p0</artifactId>
            <version>0.8.4.5</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-io</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>commons-lang</groupId>
            <artifactId>commons-lang</artifactId>
            <version>2.5</version>
        </dependency>
        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc14</artifactId>
            <version>10.2.0.3.0</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>1.6.1</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.6.1</version>
        </dependency>
        <dependency>
            <groupId>hsqldb</groupId>
            <artifactId>hsqldb</artifactId>
            <version>1.8.0.7</version>
        </dependency>
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjrt</artifactId>
            <version>1.6.8</version>
        </dependency>
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>1.6.8</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.1</version>
        </dependency>
    </dependencies>

提案してください。

4

4 に答える 4

3

以下の依存関係を削除してみてください

<dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-api</artifactId>
   `enter code here`<version>1.6.1</version>
</dependency>

slf4j-log4j12そして、あなたのpoにのみ保管してください

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <version>1.6.1</version>
    </dependency>

これらのアーティファクトは競合しているようで、互いに優先されます

于 2013-02-04T14:04:42.700 に答える
1

まず、slf4j-api が slf4j-log4j12 依存関係にバンドルされている限り、以下の依存関係を削除する必要があります。依存関係の階層 (pom.xml 内) を確認すると、slf4j-log4j12 の下に slf4j-api が表示されます。

<dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-log4j12</artifactId>
       <version></version>
       <scope>compile</scope>
</dependency>

次に、依存関係を提供し、SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder" を取得する限り。エラー Eclipse を開発環境として使用していると仮定しています。

バンドルされている Maven バージョン (m2e) を使用している Eclipse Juno および Indigo は、メッセージ SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder" を抑制していません。この動作は、m2e バージョン 1.1.0.20120530-0009 以降から存在します。

ただし、これはエラーとして示されますが、ログは正常に保存されます。強調表示されたエラーは、このバグが修正されるまで引き続き表示されます。詳細については、m2e サポート サイトを参照してください。

現在利用可能な解決策は、バンドルされたバージョンの Eclipse ではなく、外部の Maven バージョンを使用することです。この解決策とこのバグに関する詳細については、以下の質問で見つけることができます。これは、あなたが直面している同じ問題を説明していると思います。

SLF4J: クラス "org.slf4j.impl.StaticLoggerBinder" のロードに失敗しました。エラー

于 2013-02-14T00:45:14.503 に答える
0

コマンドラインアプリケーションの場合は、何らかの方法で実行する必要があります。

それは全体的に機能していて、唯一の問題はslf4j / log4jにありますか?log4jの問題はそれだけではないかもしれませんが、他のライブラリにはアクセスできません。他の依存関係でjarを作成しますか?マニフェストファイルには何が含まれていますか?

あなたの問題に関するより多くの情報が必要です。

于 2013-02-04T13:57:07.203 に答える
0

http://www.slf4j.org/codes.html#StaticLoggerBinderも参照してください。

実際に slf4j のすべての jar が最終成果物に含まれていることを確認してください。また、すべてが同じ slf4j バージョンを使用していることも確認してください。他の依存関係が slf4j-api のバージョンをオーバーライドしている可能性がありますが、それでも古い Log4j-Binding をロードします。

于 2013-02-04T14:02:26.777 に答える