[英]When using Solrj with Basic auth, giving me error "Caused by: java.net.SocketException: Connection reset"
當使用帶有基本身份驗證的 Solrj 時,出現錯誤“Caused by: java.net.SocketException: Connection reset”(連接到測試主機),而如果我連接到本地 Solr(沒有基本身份驗證)或直接 curl,它可以正常工作。 尋找任何建議/指針。
使用 curl(連接到測試主機):
curl -i --user userName:pwd https://hostname:3001/solr/Subscriptions/select?q=*:*
不工作:(連接到測試主機)
/基本認證/
SolrClient client = new
HttpSolrClient.Builder("https://hostname:3001/solr/Subscriptions").build();
QueryRequest req = new QueryRequest(new SolrQuery("*:*"));
req.setBasicAuthCredentials("userName", "pwd");
QueryResponse rsp = req.process(client);
工作(沒有連接到本地主機的基本身份驗證):
SolrClient client = new
HttpSolrClient.Builder("https://localhost:8993/solr/Subscriptions").build();
SolrQuery query = new SolrQuery();
query.setQuery("*:*");
query.setFields("Subscriptions-type","id", "subscriber-id");
QueryResponse response = client.query(query);
logger.info("Starting Solr Search to get the complete Subscriptions");
SolrDocumentList results = response.getResults();
logger.info("Completed Solr Search to get the complete Subscriptions");
a) 不確定為什么我會收到“java.net.SocketException: Connection reset”? b)我也看到在參考中他們使用“req.process(client)”但是對象“client”的類型是什么?
失敗堆棧跟蹤:-
Regular task started using Cron at 12/04/2019 16:04:29
2019-12-04 16:04:31.094 INFO 47033 --- [ scheduling-1] o.apache.http.impl.execchain.RetryExec : I/O exception (java.net.SocketException) caught when processing request to {s}->https://hostname:3001: Connection reset
2019-12-04 16:04:31.094 INFO 47033 --- [ scheduling-1] o.apache.http.impl.execchain.RetryExec : Retrying request to {s}->https://hostname:3001
2019-12-04 16:04:31.766 INFO 47033 --- [ scheduling-1] o.apache.http.impl.execchain.RetryExec : I/O exception (java.net.SocketException) caught when processing request to {s}->https://hostname:3001: Connection reset
2019-12-04 16:04:31.766 INFO 47033 --- [ scheduling-1] o.apache.http.impl.execchain.RetryExec : Retrying request to {s}->https://hostname:3001
2019-12-04 16:04:32.408 INFO 47033 --- [ scheduling-1] o.apache.http.impl.execchain.RetryExec : I/O exception (java.net.SocketException) caught when processing request to {s}->https://hostname:3001: Connection reset
2019-12-04 16:04:32.408 INFO 47033 --- [ scheduling-1] o.apache.http.impl.execchain.RetryExec : Retrying request to {s}->https://hostname:3001
2019-12-04 16:04:33.090 ERROR 47033 --- [ scheduling-1] o.s.s.s.TaskUtils$LoggingErrorHandler : Unexpected error occurred in scheduled task.
org.apache.solr.client.solrj.SolrServerException: IOException occured when talking to server at: https://hostname:3001/solr/Subscriptions
at org.apache.solr.client.solrj.impl.HttpSolrClient.executeMethod(HttpSolrClient.java:657) ~[solr-solrj-7.4.0.jar:7.4.0 9060ac689c270b02143f375de0348b7f626adebc - jpountz - 2018-06-18 16:55:14]
at org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:255) ~[solr-solrj-7.4.0.jar:7.4.0 9060ac689c270b02143f375de0348b7f626adebc - jpountz - 2018-06-18 16:55:14]
at org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:244) ~[solr-solrj-7.4.0.jar:7.4.0 9060ac689c270b02143f375de0348b7f626adebc - jpountz - 2018-06-18 16:55:14]
at org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:194) ~[solr-solrj-7.4.0.jar:7.4.0 9060ac689c270b02143f375de0348b7f626adebc - jpountz - 2018-06-18 16:55:14]
at org.apache.solr.client.solrj.SolrRequest.process(SolrRequest.java:211) ~[solr-solrj-7.4.0.jar:7.4.0 9060ac689c270b02143f375de0348b7f626adebc - jpountz - 2018-06-18 16:55:14]
......
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_45]
Caused by: java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:209) ~[na:1.8.0_45]
at java.net.SocketInputStream.read(SocketInputStream.java:141) ~[na:1.8.0_45]
at sun.security.ssl.InputRecord.readFully(InputRecord.java:465) ~[na:1.8.0_45]
at sun.security.ssl.InputRecord.read(InputRecord.java:503) ~[na:1.8.0_45]
at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:961) ~[na:1.8.0_45]
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1363) ~[na:1.8.0_45]
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1391) ~[na:1.8.0_45]
at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1375) ~[na:1.8.0_45]
at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:396) ~[httpclient-4.5.6.jar:4.5.6]
at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:355) ~[httpclient-4.5.6.jar:4.5.6]
at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142) ~[httpclient-4.5.6.jar:4.5.6]
at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:373) ~[httpclient-4.5.6.jar:4.5.6]
at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:394) ~[httpclient-4.5.6.jar:4.5.6]
at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:237) ~[httpclient-4.5.6.jar:4.5.6]
at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185) ~[httpclient-4.5.6.jar:4.5.6]
at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89) ~[httpclient-4.5.6.jar:4.5.6]
at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:110) ~[httpclient-4.5.6.jar:4.5.6]
at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185) ~[httpclient-4.5.6.jar:4.5.6]
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83) ~[httpclient-4.5.6.jar:4.5.6]
at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:56) ~[httpclient-4.5.6.jar:4.5.6]
at org.apache.solr.client.solrj.impl.HttpSolrClient.executeMethod(HttpSolrClient.java:542) ~[solr-solrj-7.4.0.jar:7.4.0 9060ac689c270b02143f375de0348b7f626adebc - jpountz - 2018-06-18 16:55:14]
... 20 common frames omitted
您必須通過以下方式使用 solrj 客戶端庫訪問 solr 服務器。 您必須提供運行 solr 的系統的實際 IP 地址和端口號。
String solrServerUrl = "https://<IP Address>:<portNo>/solr/Subscriptions";//enter actual IP address and port
SolrClient client = new HttpSolrClient.Builder(solrServerUrl ).build();
如果solr服務器開啟了https,則必須參考以下參考鏈接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.