2017-07-19 8 views
0

私はJavaの使用ModifiableSolrParams経由でインポートを実行しようとしている:Solrのインポート

あなたはトリガーにセキュリティ資格情報(ユーザー名/パスワード)を追加する方法の右方向または参照に私をポイントしてくださいでき輸入

現在のコード

SolrServer server = new HttpSolrServer(baseurl); 

    ModifiableSolrParams params = new ModifiableSolrParams(); 
    params.set("command", "full-import"); 
    params.set("clean", "true"); 
    params.set("commit", "true"); 

    QueryRequest request = new QueryRequest(params); 
    request.setPath("/dataimport"); 

    server.request(request); 

答えて

1

あなたはHttpServerをあなたにHttpRequestInterceptorを追加する必要があります。このインターセプタは、すべてのリクエストに認証ヘッダーを追加できます。

クラウドソルの場合、これを可能にするutilクラスはHttpClientUtilです。このクラスから始めたり、HttpSolrServerのどこに実際にHttpClientが存在するかを調べることができます。

+0

これをチェックします。私は先験的な認証で多くのソリューションを見ていますが、それを機能させるようには見えません。上記の解決策に以下のパラメータを追加しました。\t params.set(HttpClientUtil.PROP_BASIC_AUTH_USER、 "USER"); \t params.set(HttpClientUtil.PROP_BASIC_AUTH_PASS、 "PASSWORD");しかし、私は次のエラーを取得しています – user3286012

+0

これは私が取得しているエラーです:スレッド "メイン"の例外java.lang.NoSuchMethodError:org.apache.solr.common.SolrException $ ErrorCode.getErrorCode(I)Lorg/apache/solr/common/SolrException $エラーコード。 – user3286012

1

私はSolrjから遠ざかり、代わりにこのアプローチを行った。

HttpClient Client = new DefaultHttpClient(); 
String userpass = usr + ":" + pwd; 

HttpPost httpGet = new HttpPost(dataimport_cmd); 
String encoding = 
DatatypeConverter.printBase64Binary(userpass.getBytes("UTF-8")); 
httpGet.setHeader("Authorization", "Basic " + encoding); 

    Client.execute(httpGet); 
関連する問題