java.lang.NoClassDefFoundError:org.slf4j.LoggerFactory

Bal*_*ran 49 java

我在运行feed实用程序时收到如下所述的错误.我正在尝试加载图片" logo.png ".该slf4jjar文件也是在运行时类路径.但我仍然得到这个错误.

Oct 16, 2012 7:34:11 PM com.ibm.commerce.foundation.dataload.FeedRetriever  invokeDataLoad
SEVERE: An error occurred while performing data load.
Throwable occurred: com.ibm.commerce.foundation.dataload.exception.DataLoadException: 
An error occurred while executing the data load. 

java.lang.NoClassDefFoundError: org.slf4j.LoggerFactory

    at com.ibm.commerce.foundation.dataload.DataLoaderMain.execute(DataLoaderMain.java:664)
    at com.ibm.commerce.content.commands.DataLoadInvoker.execute(DataLoadInvoker.java:101)
    at com.ibm.commerce.foundation.dataload.FeedRetriever.invokeDataLoad(FeedRetriever.java:244)
    at com.ibm.commerce.foundation.dataload.FeedRetriever.execute(FeedRetriever.java:172)
    at com.ibm.commerce.foundation.dataload.FeedRetriever.main(FeedRetriever.java:321)
Caused by: java.lang.RuntimeException: java.lang.NoClassDefFoundError: org.slf4j.LoggerFactory
    at com.ibm.commerce.foundation.dataload.DataLoaderMain.execute(DataLoaderMain.java:488)
    ... 4 more
Caused by: java.lang.NoClassDefFoundError: org.slf4j.LoggerFactory
    at org.apache.wink.client.ClientConfig.<clinit>(ClientConfig.java:52)
    at java.lang.J9VMInternals.initializeImpl(Native Method)
    at java.lang.J9VMInternals.initialize(J9VMInternals.java:200)
    at java.lang.J9VMInternals.initialize(J9VMInternals.java:167)
    at com.ibm.commerce.foundation.dataload.feedreader.AtomReader.getFeed(AtomReader.java:104)
    at com.ibm.commerce.foundation.dataload.feedreader.AtomReader.getEntries(AtomReader.java:147)
    at com.ibm.commerce.foundation.dataload.feedreader.AtomReader.getEntries(AtomReader.java:1)
    at com.ibm.commerce.foundation.dataload.feedreader.BaseFeedReader.init(BaseFeedReader.java:252)
    at com.ibm.commerce.foundation.dataload.AbstractBusinessObjectLoader.initializeDataReaders(AbstractBusinessObjectLoader.java:1344)
    at com.ibm.commerce.foundation.dataload.AbstractBusinessObjectLoader.init(AbstractBusinessObjectLoader.java:369)
    at com.ibm.commerce.foundation.dataload.BusinessObjectLoader.init(BusinessObjectLoader.java:65)
    at com.ibm.commerce.foundation.dataload.DataLoaderMain.execute(DataLoaderMain.java:431)
    ... 4 more
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
    at java.lang.ClassNotFoundException.<init>(ClassNotFoundException.java:76)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:396)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:660)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:358)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:626)
    ... 16 more
Oct 16, 2012 7:34:11 PM com.ibm.commerce.foundation.dataload.FeedRetriever main
SEVERE: An error occurred while performing data load.
Throwable occurred: com.ibm.commerce.foundation.dataload.exception.DataLoadException: An error has occurred.  If this problem persists, contact product support.
    at com.ibm.commerce.foundation.dataload.FeedRetriever.invokeDataLoad(FeedRetriever.java:247)
    at com.ibm.commerce.foundation.dataload.FeedRetriever.execute(FeedRetriever.java:172)
    at com.ibm.commerce.foundation.dataload.FeedRetriever.main(FeedRetriever.java:321)
Run Code Online (Sandbox Code Playgroud)

Luí*_*res 28

添加SLF4J实现(因为您只有它的API):

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.26</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)


use*_*421 25

您必须在类路径中提供各种SLF4J实现.jar文件之一,以及接口.jar文件.这是记录在案的.

  • `slf4j-api-1.6.6.jar`它应该为你解决 (6认同)
  • "这是记录在案的." 哈,好吧,显然还不够好! (6认同)
  • 当前在库中的jar文件是slf4j-api-1.6.1.jar,slf4j-jdk14-1.6.1.jar,slf4j-log4j12-1.6.1.jar和slf4j-simple-1.6.1.jar.能否请您建议我必须包含在库中的正确实现和接口jar. (2认同)
  • 包含库中的slf4j-api-1.6.6.jar文件.它不起作用.将jar包含在库中是否足够?否则我必须设置类路径.如果是这样,请指导我如何设置类路径!谢谢你的帮助! (2认同)
  • 您可以通过不匹配的版本例如`slf4j-api`和`slf4j-log4j12`来导致此错误.按照@Gk的建议尝试个别罐子的随机版本.和其他答案可能巧合解决,但真正的答案只是确保加载的罐子都是相同的版本. (2认同)
  • 无论他提供的答案元素的准确性如何,我发现@EJP音调在行间不必要地具有挑衅性. (2认同)

Yuv*_*kar 11

下载slf4j-1.7.5.zip

它包含不同的jar文件.

提取zip后转到 - > Integration文件夹并包含以下jar文件

  1. SLF4J-API-2.0.99
  2. SLF4J-简单,99年6月1日
  3. 基于JUnit 3.8.1


use*_*460 7

我尝试了其他解决方案,但异常并没有消失。所以我jose4j 0.6.5 jar用 Java Decompiler反编译了整个文件并查看它的 pom.xml。

我意识到它对slf4j-api,版本 1.7.21有特定的依赖性: 在此处输入图片说明

所以在我的项目的 pom.xml 中,我添加了完全相同的依赖项,更新了我的 Maven 项目,以便它将这个 jar 下载到我的存储库中,并且异常消失了。

但是它可能会带来另一个由 slf4j 本身引起的错误:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Run Code Online (Sandbox Code Playgroud)

为了克服这个问题,我在我的项目的 pom.xml 中添加了以下内容。因此,您总共需要将以下内容添加到您的 pom.xml 并且我的jose4j运行没有任何问题:

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.21</version>
</dependency>   

<dependency>
   <groupId>org.slf4j</groupId>
   <artifactId>slf4j-simple</artifactId>
   <version>1.6.4</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

请记住在修改您的pom.xml.

(右键单击 Eclipse ->Maven ->Update Project 中的Project 文件夹..)


小智 6

右键单击项目属性,然后按照以下步骤"项目属性" - >"部署程序集",添加"Java构建路径条目 - > Maven依赖项"


Anu*_*dey 6

我也有类似的问题。我有一个 Maven 项目,正在测试rabbitmq。首先它向我展示了类似的错误,然后我在maven项目中添加了所有SLF4J依赖项,然后错误更改为“Maven SLF4J:类路径包含多个SLF4J绑定”。这是 pom.xlm 的完整依赖项列表

<dependencies>
    <dependency>
        <groupId>com.rabbitmq</groupId>
        <artifactId>amqp-client</artifactId>
        <version>4.0.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.0</version>
    </dependency>
    <dependency>
       <groupId>org.slf4j</groupId>
       <artifactId>slf4j-simple</artifactId>
       <version>1.7.21</version>
       <scope>compile</scope>
    </dependency>
</dependencies> 
Run Code Online (Sandbox Code Playgroud)

终于成功了。