Solrj to index document from Android

2019-02-28 08:27发布

问题:

I'm trying to index document using Solrj from my android application, but it seems to not work.

I following this LINK

This is the code I'm writing:

package com.example.secondapp;


import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.Intent;
import android.content.IntentSender;
import android.net.Uri;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import java.net.MalformedURLException; 

import org.apache.solr.client.solrj.SolrServer;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.response.UpdateResponse;
import org.apache.solr.common.SolrInputDocument;
import org.apache.http.impl.client.DefaultHttpClient;

import ch.boye.httpclientandroidlib.*;


 public class MainActivity extends Activity  {

    @Override
    protected void onCreate(Bundle savedInstanceState)  {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        String urlString = "http://10.0.2.2:8983/solr/collection1";

        SolrServer solr = new HttpSolrServer(urlString);
        SolrInputDocument document = new SolrInputDocument();
        document.addField("id", "552199");
        document.addField("name", "Gouda cheese wheel");
      document.addField("price", "49.99");
       // UpdateResponse response = solr.add(document);

        // Remember to commit your changes!

        //solr.commit();}

But I keep getting this error:

05-16 20:59:26.036: E/AndroidRuntime(2635): FATAL EXCEPTION: main
05-16 20:59:26.036: E/AndroidRuntime(2635): Process: com.example.secondapp, PID: 2635
05-16 20:59:26.036: E/AndroidRuntime(2635): java.lang.NoClassDefFoundError: org.apache.http.impl.client.SystemDefaultHttpClient
05-16 20:59:26.036: E/AndroidRuntime(2635):     at org.apache.solr.client.solrj.impl.HttpClientUtil.createClient(HttpClientUtil.java:112)
05-16 20:59:26.036: E/AndroidRuntime(2635):     at org.apache.solr.client.solrj.impl.HttpSolrServer.<init>(HttpSolrServer.java:161)
05-16 20:59:26.036: E/AndroidRuntime(2635):     at org.apache.solr.client.solrj.impl.HttpSolrServer.<init>(HttpSolrServer.java:134)

how can I solve this problem, Thanks in advance

回答1:

org.apache.http.impl.client.SystemDefaultHttpClient class is from Httpclient jar, and from version 4.2. Check whether you have the right jar in your classpath.