2017-02-14 5 views
0

Ich versuche SolrCloud mit SolrJ API folgenden Code zu verbinden:Solr6.3.0 SolrJ API für Standardauthentifizierung

String zkHostString = "localhost:9983"; 
    String USER = "solr"; 
    String PASSWORD = "SolrRocks"; 


    CredentialsProvider credentialsProvider = new BasicCredentialsProvider(); 
    credentialsProvider.setCredentials(AuthScope.ANY, new UsernamePasswordCredentials(USER, PASSWORD)); 
    CloseableHttpClient httpClient = HttpClientBuilder.create().setDefaultCredentialsProvider(credentialsProvider).build(); 

    CloudSolrClient solr = new CloudSolrClient.Builder().withZkHost(zkHostString).withHttpClient(httpClient).build(); 
    ((CloudSolrClient)solr).setDefaultCollection("gettingstarted"); 

Aber immer Fehler wie:

Exception in thread "main" org.apache. solr.client.solrj.impl.CloudSolrClient $ RouteException: IOException ist aufgetreten, wenn mit Server gesprochen wird unter: http://192.168.0.104:8983/solr/gettingstarted_shard2_replica1 bei org.apache.solrc.client.solrj.impl.CloudSolrClient.directUpdate (CloudSolrClient.java:767) bei org.apache .solrc.client.solrj.impl.CloudSolrClient.sendRequest (CloudSolrClient.java:1173) bei org.apache.solrc.client.solrj.impl.CloudSolrClient.requestWithRetryOnStaleState (CloudSolrClient.java:1062) bei org.apache.solrc.client.solrj.impl.CloudSolrClient.request (CloudSolrClient.java:1004) bei org.apache.solr.client.solrj.SolrRequest.process (SolrRequest.java:149) bei org.apache.solrc.client.solrj.SolrClient.add (SolrClient.java:173) bei org.apache.solr. client.solrj.SolrClient.add (SolrClient.java:190) bei com.app.graphiti.TextParser.main (TextParser.java:92) verursacht durch: org.apache.solr.client.solrj.SolrServerException: IOException aufgetreten beim Gespräch mit dem Server unter: http://192.168.0.104:8983/solr/gettingstarted_shard2_replica1 bei org.apache.solrc.client.solrj.impl.HttpSolrClient.executeMethod (HttpSolrClient.java:607) bei org.apache.solr.client.solrj.impl.H ttpSolrClient.request (HttpSolrClient.java:262) bei org.apache.solrc.client.solrj.impl.HttpSolrClient.request (HttpSolrClient.java:251) bei org.apache.solr.client.solrj.impl.LBHttpSolrClient. doRequest (LBHttpSolrClient.java:435) bei org.apache.solrc.client.solrj.impl.LBHttpSolrClient.request (LBHttpSolrClient.java:387) bei org.apache.solr.client.solrj.impl.CloudSolrClient.lambda $ directUpdate $ 0 (CloudSolrClient.java:742) bei java.util.concurrent.FutureTask.run (Unbekannte Quelle) bei org.apache.solr.common.util.ExecutorUtil $ MDCAwareThreadPoolExecutor.lambda $ execute $ 0 (ExecutorUtil.java:229) bei java.util.concurrent.ThreadPoolExecutor.runWorker (unbekannte Quelle) bei java.util.concurrent.ThreadPoolExecutor $ Worker.run (unbekannte Quelle) bei java.lang.Thread.run (Unknown Source) Verursacht durch: org.apache.http.client.ClientProtocolException bei org.apache.http.impl.client.InternalHttpClient.doExecute (InternalHttpClient.java:186) bei org.apache.http.impl.client.CloseableHttpClient.execute (CloseableHttpClient.java:82) bei org.apache.http.impl.client.CloseableHttpClient.execute (CloseableHttpClient.java:55) bei org.apache.solr. client.solrj.impl.HttpSolrClient.executeMethod (HttpSolrClient.java:498) ... 10 mehr verursacht durch: org.apache.http.client.NonRepeatableRequestException: Anforderung mit einem nicht wiederholbaren Anforderungsentität kann nicht wiederholt werden. bei org.apache.http.impl.execchain.MainClientExec.execute (MainClientExec.java:225) bei org.apache.http.impl.execchain.ProtocolExec.execute (ProtocolExec.java:184) bei org.apache. http.impl.execchain.RetryExec.execute (RetryExec.java:88) bei org.apache.http.impl.execchain.RedirectExec.execute (RedirectExec.java:110) bei org.apache.http.impl.client. InternalHttpClient.doExecute (InternalHttpClient.java:184) ... 13 mehr 16: 55: 40.289 [main-SendThread (0: 0: 0: 0: 0: 0: 0: 1: 9983)] DEBUG org.apache .zookeke.ClientCnxn - Antwort des Pings für Sitzungs-ID: 0x15a3bc76e1f000e nach 1ms 16: 55: 43.624 [main-SendThread (0: 0: 0: 0: 0: 0: 0: 1: 9983)] DEBUG org.apache.zookeeper .ClientCnxn - Ping-Antwort für Sitzungs-ID: 0x15a3bc76e1f000e nach 1ms 16: 55: 46.958 [main-SendThread (0: 0: 0: 0: 0: 0: 0: 1: 9983)] DEBUG org.apache.zookeeper.ClientCnxn - Ping-Antwort für Sitzungs-ID: 0x15a3bc76e1f000e nach 1ms \

Bitte helfen. Vrinda Davda

Antwort

1

Ich glaube, was passiert hier ist, dass SolrJ POST verwendet, um Ihr Dokument hinzuzufügen, und nicht präventive Authentifizierung. Dies war früher einfacher zu sein, scheint aber jetzt zu verlangen, dass Sie HttpClientBuilder für die Bereitstellung verwenden, um sowohl eine CredentialsProvider und ein HttpRequestInterceptor, die bei Bedarf, aktualisiert die TARGET_AUTH_STATE des Antrags Zusammenhang mit einem neuen BasicScheme und UsernamePasswordCredentials.

Ich verbrachte die meiste Zeit des Tages, diese selbst zu kämpfen, bis ich entdeckt Brian Teggart ‚s 12. März 2015 Posting in diesem Thread:

Preemptive Basic authentication with Apache HttpClient 4

Dies ist für mich die Arbeit mit dem Solr 6.4.1 Server und der SolrJ 5.3.1 Client.