2012年5月13日日曜日

[java]solrjでBasicAuth


Caused by: org.apache.solr.client.solrj.SolrServerException: org.apache.commons.httpclient.ProtocolException: Unbuffered entity enclosing request can not be repeated.
at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:475)
at org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request(CommonsHttpSolrServer.java:244)
at org.apache.solr.client.solrj.request.AbstractUpdateRequest.process(AbstractUpdateRequest.java:105)
at org.apache.solr.client.solrj.SolrServer.deleteById(SolrServer.java:102)



公開前でまじであせった。

HttpClient httpClient = new HttpClient();
// 認証情報(ユーザ名とパスワード)の作成.
Credentials defaultcreds1 = new UsernamePasswordCredentials(user, password);
// 認証のスコープ.
AuthScope scope1 = new AuthScope(hostName, 80, AuthScope.ANY_REALM);
// スコープと認証情報の組合せをセット.
httpClient.getState().setCredentials(scope1, defaultcreds1);
httpClient.getParams().setAuthenticationPreemptive(true); // これをいれたらOK
server = new CommonsHttpSolrServer(_solrhost, httpClient);


これでいけた。

0 件のコメント:

コメントを投稿