How to fix exception: Failed to instantiate SLF4J

2019-02-07 06:52发布

问题:

I am trying to write a java web crawler for semantic web using jena library. I have build project using Netbeans. I am receiving two errors:

  1. Failed to instantiate SLF4J LoggerFactory Reported exception: java.lang.NoClassDefFoundError: org/apache/log4j/Level

  2. Could not initialize class com.hp.hpl.jena.rdf.model.impl.ModelCom at org.slf4j.LoggerFactory.bind(LoggerFactory.java:128)

I have included slf4j-api and slf4j-log both libraries.

回答1:

You should also include log4j library as slf4j-log4j is just a static binder.



回答2:

You should include slf4j-api-x.x.x.jar and slf4j-simple-x.x.x.jar in your classpath.



回答3:

As error suggested:

Failed to instantiate SLF4J LoggerFactory

you need to place your corresponding slf4j-*-*.jar binding files into your classpath folder.

You can locate them by locate slf4j if present.

As of SLF4J version 1.6.0, if no binding is found on the class path, then slf4j-api will default to a no-operation implementation discarding all log requests.

Tomcat

If using Tomcat, these files you can copy either into /usr/share/tomcat7/lib or your webapp folder /var/lib/tomcat7/webapps/*/WEB-INF/lib.

Solr

If you're using Solr or you want use the files from there (which are included by default), you can find them in dist/solrj-lib and example/lib/ext.


See: The Simple Logging Facade for Java (SLF4J) user manual



回答4:

I tried all permutation and combination but finally slf4j-api- and slf4j-simple- worked well.



标签: java log4j slf4j