LoginSignup
2
1

More than 5 years have passed since last update.

JavaでSolrを使おうとしてエラーになったときのまとめ (Solr6.x)

Last updated at Posted at 2017-01-07

はじめに

 Solrjを使っていてエラーになったときの対処方法を備忘録としてまとめておきます。順次増えていくかも。

SolrServerを初期化する際のエラー

 一般的にSolrServerを初期化する際には以下のコードになります。

SolrServerSample.java
import java.io.IOException;
import org.apache.solr.client.solrj.*;
import org.apache.solr.client.solrj.impl.*;

public class SolrServerSample {
    public static void main(String[] args) throws SolrServerException, IOException {
        String url = "http://localhost:8983/solr/exampleCore";
        SolrClient solr = new HttpSolrClient.Builder(url).build(); // ※1 SolrServerを初期化する部分
    }
}

 上記※1の部分で発生するエラーをまとめます。

クラスが見つからない

 具体的には以下のようなエラーです。

  • java.lang.NoClassDefFoundError: org/apache/http/client/HttpClient
  • java.lang.NoClassDefFoundError: org/apache/http/Header
  • java.lang.NoClassDefFoundError: org/apache/http/entity/mime/content/ContentBody
  • java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory

 必要なjarファイルがビルドパスに含まれていない可能性があります。予めダウンロードしていると思われる、solr6.x.xフォルダ内の、dist -> solrj-lib フォルダにある以下のjarをビルドパスに含めてください。(xはバージョン番号)

  • httpclient-x.x.x.jar
  • httpcore-x.x.x.jar
  • httpmime-x.x.x.jar
  • slf4j-api-x.x.x.jar

slf4j関連

 具体的には以下のようなエラーです。

  • Failed to load class "org.slf4j.impl.StaticLoggerBinder".
  • org.apache.solr.common.SolrException: Unable to create HttpClient instance.

slf4jのダウンロードページから最新のslf4jをダウンロードし、中にある以下のjarファイルをビルドパスに追加してください。(xはバージョン番号)

  • slf4j-api-x.x.x.jar
  • slf4j-simple-x.x.x.jar
  • jcl-over-slf4j-x.x.x.jar

なお、すでに上述のjarが存在していた場合は一旦除去して、最新のものに入れ替えてください。

SolrInputDocumentを生成する際のエラー

SolrDocumentSample.java
import java.io.IOException;
import org.apache.solr.client.solrj.*;
import org.apache.solr.client.solrj.impl.*;

public class SolrDocumentSample {
    public static void main(String[] args) throws SolrServerException, IOException {
        String url = "http://localhost:8983/solr/exampleCore";
        SolrClient solr = new HttpSolrClient.Builder(url).build();

        SolrInputDocument document = new SolrInputDocument(); // ※2 SolrInputDocumentを生成する部分
    }
}

上記※2の部分で発生するエラーをまとめます。

クラスが見つからない

 具体的には以下のようなエラーです。

  • java.lang.NoClassDefFoundError: org/noggit/CharArr

 必要なjarファイルがビルドパスに含まれていない可能性があります。予めダウンロードしていると思われる、solr6.x.xフォルダ内の、dist -> solrj-lib フォルダにある以下のjarをビルドパスに含めてください。(xはバージョン番号)

  • noggit-x.x.jar
2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1