引き続き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を追加したら動きました。