2013-07-29 44 views
0

我寫了下面提到的代碼。異常連接到遠程Solr實例(407錯誤)

HttpSolrServer solrServer = new HttpSolrServer("http://10.40.4.171/solr/prime-core"); 
List<UserSolr> userList=null; 
     SolrQuery q = new SolrQuery(); 
     q.setQuery("*:*"); 
     q.setStart(0); 
     q.setRows(10); 
     //SolrDocumentList results = null; 
     try { 
      QueryResponse response = solrServer.query(q); 
      userList=response.getBeans(UserSolr.class); 
     } catch (Exception e) { 
      // TODO: handle exception 
      System.out.println(e); 
     } 

但上述我得到以下錯誤: -

org.apache.solr.client.solrj.impl.HttpSolrServer$RemoteSolrException: Server at http://10.40.4.171/solr/prime-core returned non ok status:407, message:Proxy Authorization Required 

我不能夠解決這個問題。相同的代碼工作正常與網址http://localhost:8080/solr/prime-core請讓我知道如何修改連接到服務器沒有錯誤。

謝謝。

注: 黃金核心是我Solr的核心 我使用Solr的4.3

回答

0

HTTP代碼407意味着Proxy Authentication Required,你需要設置的認證信息,同時通過HttpClient使連接到服務器:

httpclient.getCredentialsProvider().setCredentials(
        AuthScope.ANY, 
        new UsernamePasswordCredentials(username, password)); 
solrServer = new HttpSolrServer(solrUrl, httpclient);//with credentials 

您可能想要查看類似的討論:

Solr - instantiate HttpSolrServer with Httpclient

Solr 4 with basic authentication

+0

的用戶名和密碼意味着代理服務器的用戶名和密碼?對? –

+0

是的,如果它的代理網址,因爲它與'407'失敗.. – harsh