How to fix exception: Failed to instantiate SLF4J LoggerFactory?
Matthew Harrington
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:
Failed to instantiate SLF4J LoggerFactory Reported exception: java.lang.NoClassDefFoundError: org/apache/log4j/Level
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.
4 Answers
You should also include log4j library as slf4j-log4j is just a static binder.
You should include slf4j-api-x.x.x.jar and slf4j-simple-x.x.x.jar in your classpath.
I tried all permutation and combination but finally slf4j-api- and slf4j-simple- worked well.
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.