java-Solr-使用Httpclient实例化HttpSolrServer

我需要连接到代理(?)后面的Solr服务器.
以下我尝试过(没什么特别的):

SolrServer server = new HttpSolrServer("https://urltosolr/solr");
try {
    SolrPingResponse pingResponse = server.ping();
} catch (SolrServerException e) {
    ....
}

堆栈跟踪:

 org.apache.solr.client.solrj.SolrServerException: IOException occured when talking to server at: https://urltosolr/solr
 ...
 Caused by: javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated

之后,我尝试了HttpSolrServer的其他构造函数,但是我不知道如何将用户名和密码正确设置到HttpClient中.有人可以帮忙吗?

解决方法:

我看不到您尝试在代码中通过代理连接的位置,仅在创建HttpSolrServer时提供了solr URL.您可以提供自己的HttpClient实例,而HttpSolrServer实例为creating.您的HttpClient实例可以包含有关代理的信息.所需的代码应为以下代码,您可以在http-components examples中找到它:

DefaultHttpClient httpclient = new DefaultHttpClient();
HttpHost proxy = new HttpHost(proxyHost, proxyPort, "http");
httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
httpclient.getCredentialsProvider().setCredentials(
                    AuthScope.ANY,
                    new UsernamePasswordCredentials(username, password));
SolrServer solrServer = new HttpSolrServer(solrUrl, httpclient);

多看您的问题,我认为您不需要使用代理进行连接.您的错误是关于https的.看看this其他问题和答案,看看您需要做什么.您需要查看的httpclient版本是4.x.

上一篇:26.Apache Solr RCE


下一篇:RuntimeError: cuDNN error: CUDNN_STATUS_INTERNAL_ERROR