Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/codec/DecoderException

Tania Marinova picture Tania Marinova · Mar 28, 2013 · Viewed 28.3k times · Source

I try Querying Solr via Solrj

Here is my code

public class ReadFromSolr {

public static void main(String[] args) throws MalformedURLException, SolrServerException 
{
     String url = "http://localhost:8983/solr";
      try{
     SolrServer server = new CommonsHttpSolrServer(url);
     ModifiableSolrParams params = new ModifiableSolrParams();
       params.set("qt", "/select");
        params.set("q", "name");

            QueryResponse response = server.query(params);

            System.out.println("response = " + response);

      }

         catch (MalformedURLException ex) {
            ex.printStackTrace();
        } 
      catch (SolrServerException ex) {
            ex.printStackTrace();
        } 


}

}

and it gives me an exception

PS. I've got the following jars in my peoject:

**apache - commons-logging,
*httpclient -4.2 ,
httpcore 4.2.1, slf4j - api 1.6.2,
apache - solr - solrj -1.4.0
***

 Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/codec/DecoderException
        at org.apache.commons.httpclient.HttpMethodBase.<init>(HttpMethodBase.java:220)
        at org.apache.commons.httpclient.methods.GetMethod.<init>(GetMethod.java:89)
        at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:288)
        at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:243)
        at org.apache.solr.client.solrj.request.QueryRequest.process(QueryRequest.java:89)
        at org.apache.solr.client.solrj.SolrServer.query(SolrServer.java:118)
        at com.gismo.ReadFromSolr.main(ReadFromSolr.java:27)
    Caused by: java.lang.ClassNotFoundException: org.apache.commons.codec.DecoderException
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.net.URLClassLoader$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)

Answer

clav picture clav · Mar 28, 2013

You need commons-codec.jar on the classpath.