文系プログラマによるTIPSブログ

文系プログラマ脳の私が開発現場で学んだ事やプログラミングのTIPSをまとめています。

solr3.6:solrj3.6を使う時に不足しているjar

引き続きsolr3.6のお話。今回はsolrjの話です。
solrjでConcurrentUpdateSolrServerを使ってみたんですが、
apache-solr-3.6.0.zip の内包されたjarだけじゃ足りないようです。

		String solrServerUrl = "http://localhost:8080/solr-test/core1/";
		int queueSize = 1;
		int threadCount = 1;
		SolrServer solrServer = new ConcurrentUpdateSolrServer(solrServerUrl, queueSize, threadCount);

結果は以下のエラーが発生しました。

java.lang.NoClassDefFoundError: org/apache/http/HttpRequestInterceptor
	at org.apache.solr.client.solrj.impl.ConcurrentUpdateSolrServer.<init>(ConcurrentUpdateSolrServer.java:99)
	at org.apache.solr.client.solrj.impl.ConcurrentUpdateSolrServer.<init>(ConcurrentUpdateSolrServer.java:88)

java.lang.NoClassDefFoundError: org/apache/http/entity/mime/content/ContentBody
	at org.apache.solr.client.solrj.impl.ConcurrentUpdateSolrServer.<init>(ConcurrentUpdateSolrServer.java:99)
	at org.apache.solr.client.solrj.impl.ConcurrentUpdateSolrServer.<init>(ConcurrentUpdateSolrServer.java:88)

java.lang.NoClassDefFoundError: org/apache/http/conn/scheme/SchemeSocketFactory
	at org.apache.solr.client.solrj.impl.ConcurrentUpdateSolrServer.<init>(ConcurrentUpdateSolrServer.java:99)
	at org.apache.solr.client.solrj.impl.ConcurrentUpdateSolrServer.<init>(ConcurrentUpdateSolrServer.java:88)

結局、httpclientの3系ではなく、4系のjarが必要なのでした。。。

  • httpclient-4.1.1.jar
  • httpcore-4.1.jar
  • httpmime-4.1.1.jar

この3つのjarを追加したら動きました。