You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by Sajith Vimukthi <Sa...@zone24x7.com> on 2008/12/18 10:14:10 UTC

Solrj - Exception in thread "main" java.lang.ClassCastException: java.lang.Long cannot be cast to org.apache.solr.common.util.NamedList

Hi all,

 

I used the sample code given below and tried to run with all the relevant
jars. I receive the exception written below.

 

package test.general;

 

import org.apache.solr.client.solrj.SolrServer;

import org.apache.solr.client.solrj.SolrServerException;

import org.apache.solr.client.solrj.SolrQuery;

import org.apache.solr.client.solrj.response.UpdateResponse;

import org.apache.solr.client.solrj.response.QueryResponse;

import org.apache.solr.client.solrj.response.FacetField;

import org.apache.solr.client.solrj.impl.CommonsHttpSolrServer;

import org.apache.solr.common.SolrInputDocument;

import org.apache.solr.common.params.SolrParams;

 

 

 

import java.io.IOException;

import java.util.Collection;

import java.util.HashSet;

import java.util.Random;

import java.util.List;

 

/**

 * Connect to Solr and issue a query

 */

public class SolrJExample {

 

  public static final String [] CATEGORIES = {"a", "b", "c", "d"};

 

  public static void main(String[] args) throws IOException,
SolrServerException {

    SolrServer server = new
CommonsHttpSolrServer("http://localhost:8080/solr/update");

    Random rand = new Random();

    

 

    //Index some documents

    Collection<SolrInputDocument> docs = new HashSet<SolrInputDocument>();

    for (int i = 0; i < 10; i++) {

      SolrInputDocument doc = new SolrInputDocument();

      doc.addField("link", "http://non-existent-url.foo/" + i + ".html");

      doc.addField("source", "Blog #" + i);

      doc.addField("source-link", "http://non-existent-url.foo/index.html");

      doc.addField("subject", "Subject: " + i);

      doc.addField("title", "Title: " + i);

      doc.addField("content", "This is the " + i + "(th|nd|rd) piece of
content.");

      doc.addField("category", CATEGORIES[rand.nextInt(CATEGORIES.length)]);

      doc.addField("rating", i);

      System.out.println("Doc[" + i + "] is " + doc);

      docs.add(doc);

    }

    

    UpdateResponse response = server.add(docs);

    System.out.println("Response: " + response);

    //Make the documents available for search

    server.commit();

    //create the query

    SolrQuery query = new SolrQuery("content:piece");

    //indicate we want facets

    query.setFacet(true);

    //indicate what field to facet on

    query.addFacetField("category");

    //we only want facets that have at least one entry

    query.setFacetMinCount(1);

    //run the query

    QueryResponse results = server.query(query);

    System.out.println("Query Results: " + results);

    //print out the facets

    List<FacetField> facets = results.getFacetFields();

    for (FacetField facet : facets) {

      System.out.println("Facet:" + facet);

    }

 

 

  }

 

}

 

 

The exception :

 

Exception in thread "main" java.lang.ClassCastException: java.lang.Long
cannot be cast to org.apache.solr.common.util.NamedList

      at
org.apache.solr.common.util.NamedListCodec.unmarshal(NamedListCodec.java:89)

      at
org.apache.solr.client.solrj.impl.BinaryResponseParser.processResponse(Binar
yResponseParser.java:39)

      at
org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpS
olrServer.java:385)

      at
org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpS
olrServer.java:183)

      at
org.apache.solr.client.solrj.request.UpdateRequest.process(UpdateRequest.jav
a:217)

      at org.apache.solr.client.solrj.SolrServer.add(SolrServer.java:48)

      at test.general.SolrJExample.main(SolrJExample.java:48)

 

 

Can someone help me out.

 

Regards,

Sajith Vimukthi Weerakoon

Associate Software Engineer | ZONE24X7

| Tel: +94 11 2882390 ext 101 | Fax: +94 11 2878261 |

http://www.zone24x7.com