2

プロキシ(?)の背後にある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に正しく設定する方法がわかりません。誰か助けてもらえますか?

4

1 に答える 1

4

コード内のプロキシを介して接続しようとしている場所がわかりません。作成時にsolrURLを指定しただけHttpSolrServerです。インスタンスの作成中に独自のHttpClientインスタンスを提供できます。インスタンスには、プロキシに関する情報を含めることができます。必要なコードは次のようになります。これは、http-componentsの例にあります。HttpSolrServerHttpClient

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です。

于 2012-10-09T17:51:35.497 に答える