【发布时间】:2017-05-24 21:26:07
【问题描述】:
我正在使用 Solrj 库在 SolrCloud 上运行以下测试代码:
public static void main(String[] args) {
String zkHostString = "192.168.56.99:2181";
SolrClient solr = new CloudSolrClient.Builder().withZkHost(zkHostString).build();
List<MyBean> beans = new ArrayList<>();
for(int i = 0; i < 10000 ; i++) {
// creating a bunch of MyBean to be indexed
// and temporarily storing them in a List
// no Solr operations performed here
}
System.out.println("Adding...");
try {
solr.addBeans("myCollection", beans);
} catch (IOException | SolrServerException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
System.out.println("Committing...");
try {
solr.commit("myCollection");
} catch (SolrServerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
由于以下异常,此代码失败
Exception in thread "main" java.lang.NullPointerException
at org.apache.solr.client.solrj.impl.CloudSolrClient.requestWithRetryOnStaleState(CloudSolrClient.java:1175)
at org.apache.solr.client.solrj.impl.CloudSolrClient.request(CloudSolrClient.java:1057)
at org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:160)
at org.apache.solr.client.solrj.SolrClient.add(SolrClient.java:106)
at org.apache.solr.client.solrj.SolrClient.addBeans(SolrClient.java:357)
at org.apache.solr.client.solrj.SolrClient.addBeans(SolrClient.java:312)
at com.togather.solr.testing.SolrIndexingTest.main(SolrIndexingTest.java:83)
这是异常的完整堆栈跟踪。我只是从 Solr 独立安装“升级”到 SolrCloud(使用外部 Zookeeper 单个实例,而不是嵌入式实例)。使用独立的 Solr,相同的代码(只有一些细微的差异,例如主机 URL)过去可以完美地工作。
NPE 将我发送到 SolrJ 库中,我不知道。
任何人都可以帮助我了解问题的根源以及如何克服它?由于我缺乏经验和错误信息的简洁,我无法弄清楚从哪里开始查询。
【问题讨论】:
-
您使用的是哪个版本的 SolrJ?
-
@freedev 最新稳定版,6.5.1