使用SolrJ API索引文档时出错

使用SolrJ API索引文档时出错,solr,solrj,solrcloud,Solr,Solrj,Solrcloud,这是我的代码: import org.apache.solr.client.solrj.* import org.apache.solr.client.solrj.impl.*; import org.apache.solr.client.solrj.impl.HttpClientUtil.*; import org.apache.solr.client.solrj.response.*; import org.apache.solr.common.*; import java.io.*; pu

这是我的代码:

import org.apache.solr.client.solrj.*
import org.apache.solr.client.solrj.impl.*;
import org.apache.solr.client.solrj.impl.HttpClientUtil.*;
import org.apache.solr.client.solrj.response.*;
import org.apache.solr.common.*;
import java.io.*;
public class Response{
  public static void main(String[] args) throws SolrServerException, IOException
  {
    /*String host =  "localhost:9983",localkey = (""+Math.random());
    Search srch = new Search(host,localkey, "Search");
    Update updt = new Update(host,localkey, "Update");
    srch.start();
    updt.start();*/
    String zkHost = "http://localhost:9983";
    CloudSolrClient server = new CloudSolrClient(zkHost);
    server.setDefaultCollection("Test");
    SolrInputDocument doc = new SolrInputDocument();
    doc.addField("id", "1234");
    doc.addField("name", "A lovely summer holiday");
    server.add(doc);
    server.commit();
    }
}
我的Solr云在端口8983、7575、8984、7576上运行,Zookeeper在端口9983上运行。 运行代码时出现以下错误:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
SLF4J: Failed to load class "org.slf4j.impl.StaticMDCBinder".
SLF4J: Defaulting to no-operation MDCAdapter implementation.
SLF4J: See http://www.slf4j.org/codes.html#no_static_mdc_binder for further details.
Exception in thread "main" org.apache.solr.common.SolrException: Unable to create HttpClient instance. 
    at org.apache.solr.client.solrj.impl.HttpClientUtil$HttpClientFactory.createHttpClient(HttpClientUtil.java:393)
    at org.apache.solr.client.solrj.impl.HttpClientUtil.createClient(HttpClientUtil.java:124)
    at org.apache.solr.client.solrj.impl.CloudSolrClient.<init>(CloudSolrClient.java:189)
    at Response.main(Response.java:16)
Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:408)
    at org.apache.solr.client.solrj.impl.HttpClientUtil$HttpClientFactory.createHttpClient(HttpClientUtil.java:391)
    ... 3 more
Caused by: java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
    at org.apache.http.impl.client.CloseableHttpClient.<init>(CloseableHttpClient.java:58)
    at org.apache.http.impl.client.AbstractHttpClient.<init>(AbstractHttpClient.java:287)
    at org.apache.http.impl.client.DefaultHttpClient.<init>(DefaultHttpClient.java:128)
    at org.apache.http.impl.client.SystemDefaultHttpClient.<init>(SystemDefaultHttpClient.java:116)
    ... 8 more
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
    at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 12 more
SLF4J:未能加载类“org.SLF4J.impl.StaticLoggerBinder”。
SLF4J:默认为无操作(NOP)记录器实现
SLF4J:参见http://www.slf4j.org/codes.html#StaticLoggerBinder 详情请参阅。
SLF4J:未能加载类“org.SLF4J.impl.StaticMDCBinder”。
SLF4J:默认为无操作MDCAdapter实现。
SLF4J:参见http://www.slf4j.org/codes.html#no_static_mdc_binder 详情请参阅。
线程“main”org.apache.solr.common.SolrException中出现异常:无法创建HttpClient实例。
位于org.apache.solr.client.solrj.impl.HttpClientUtil$HttpClientFactory.createHttpClient(HttpClientUtil.java:393)
位于org.apache.solr.client.solrj.impl.HttpClientUtil.createClient(HttpClientUtil.java:124)
位于org.apache.solr.client.solrj.impl.CloudSolrClient.(CloudSolrClient.java:189)
位于Response.main(Response.java:16)
原因:java.lang.reflect.InvocationTargetException
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:408)
位于org.apache.solr.client.solrj.impl.HttpClientUtil$HttpClientFactory.createHttpClient(HttpClientUtil.java:391)
... 3个以上
原因:java.lang.NoClassDefFoundError:org/apache/commons/logging/LogFactory
位于org.apache.http.impl.client.CloseableHttpClient。(CloseableHttpClient.java:58)
位于org.apache.http.impl.client.AbstractHttpClient。(AbstractHttpClient.java:287)
位于org.apache.http.impl.client.DefaultHttpClient。(DefaultHttpClient.java:128)
位于org.apache.http.impl.client.SystemDefaultHttpClient。(SystemDefaultHttpClient.java:116)
... 8个以上
原因:java.lang.ClassNotFoundException:org.apache.commons.logging.LogFactory
在java.net.URLClassLoader$1.run(URLClassLoader.java:372)
在java.net.URLClassLoader$1.run(URLClassLoader.java:361)
位于java.security.AccessController.doPrivileged(本机方法)
位于java.net.URLClassLoader.findClass(URLClassLoader.java:360)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:424)
位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
位于java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 还有12个

有人能告诉我怎么通过吗?我想不出来。

您有记录器http连接问题。为了解决这个问题,您必须将以下依赖项添加到项目pom.xml中

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.2</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.5</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.5</version>
</dependency>

org.apache.httpcomponents
httpclient
4.5.2
org.slf4j
slf4j api
1.7.5
org.slf4j
slf4j-log4j12
1.7.5

希望它能帮助您:)

您有日志记录程序和http连接问题。为了解决这个问题,您必须将以下依赖项添加到项目pom.xml中

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.2</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.5</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.5</version>
</dependency>

org.apache.httpcomponents
httpclient
4.5.2
org.slf4j
slf4j api
1.7.5
org.slf4j
slf4j-log4j12
1.7.5

希望它能对您有所帮助:)

您的类路径中似乎缺少Apache日志jar。如果没有它,您可能也无法获得任何关于错误的日志记录。您是指org Apache commons logging?可能您需要它:。您的类路径中似乎缺少Apache日志jar。如果没有它,您可能无法获得任何正确的日志记录错误的日志记录..您是指org apache commons日志记录吗?可能您需要以下内容:。