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中。有人可以帮忙吗?
回答:
我看不到您尝试在代码中通过代理连接的位置,仅在创建时提供了solr网址HttpSolrServer
。您可以HttpClient
在创建实例时提供自己的HttpSolrServer
实例。您的HttpClient
实例可以包含有关代理的信息。所需的代码应为以下代码,您可以在http-
components示例中找到这些代码:
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的。看看这个其他的问题和答案,看你需要做什么。您需要查看的httpclient版本是4.x。
以上是 Solr-使用HttpClient实例化HttpSolrServer 的全部内容, 来源链接: utcz.com/qa/398134.html