86 votes

java.lang.NoClassDefFoundError : org.slf4j.LoggerFactory

J'obtiens l'erreur mentionnée ci-dessous lors de l'exécution de l'utilitaire d'alimentation. J'essaie de charger une image " logo.png ". Les slf4j est également disponible dans le chemin de classe de l'exécution. Mais j'obtiens toujours cette erreur.

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)

2voto

La solution idéale, qui fonctionne sans aucun doute, est d'ajouter ces paquets à votre application :
https://mvnrepository.com/artifact/org.slf4j/slf4j-api/1.7.2
http://archive.apache.org/dist/logging/log4j/1.2.16/

après l'avoir ajouté, vous risquez de rencontrer l'AVERTISSEMENT suivant, que vous pouvez tout simplement ignorer !

SLF4J : Aucun fournisseur SLF4J n'a été trouvé. SLF4J : Mise en œuvre par défaut de l'enregistreur sans opération (NOP) SLF4J : Voir http://www.slf4j.org/codes.html#noProviders pour plus de détails.

crédits : https://www.javacodegeeks.com/2018/02/fix-exception-thread-main-java-lang-noclassdeffounderror-org-slf4j-loggerfactory-java.html

1voto

BABU K Points 355

Cette erreur se produit parce que les bocaux référencés ne sont pas vérifiés dans l'onglet commande et exportation de notre projet.

Choisissez Project ->ALT+Enter->Java Build Path ->Order and Export->check necessary jar files into your project.

Enfin, nettoyez votre projet et exécutez-le. Il s'exécutera avec succès.

1voto

Nagappan Points 315

Lorsque nous utilisons le jar de l'api slf4j, nous avons besoin de n'importe quelle implémentation de logger comme log4j. Sur mon système, nous disposons de l'ensemble complet et cela fonctionne bien.

1. slf4j-api-1.5.6.jar
2. slf4j-log4j12-1.5.6.jar
3. **log4j-1.2.15.jar**

1voto

MarkAddison Points 31

Je crois que la réponse se trouve sur le site web de slf4j ( Échec du chargement de la classe org.slf4j.impl.StaticLoggerBinder )

Pour une solution très rapide, je suggère d'ajouter l'implémentation du logger sans opération (NOP) (slf4j-nop.jar)

Par exemple, si vous utilisez maven :

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-nop</artifactId>
    <version>${slf4j-nop-version}</version>
</dependency>

0voto

Ramiro Pedrozo Points 1

Assurez-vous que votre MANIFEST.MF contient le nom du jar référencé dans mon application était slf4j-api-*. jar .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X