2017-04-11 122 views
0

我剛剛在SolrCloud上的Solr 6.4.2中設置了基本身份驗證插件,我試圖修改我的SolrJ代碼,以便代碼可以通過身份驗證並執行索引。在SolrJ代碼中使用BasicAuth

我嘗試使用Solr Documentation https://cwiki.apache.org/confluence/display/solr/Basic+Authentication+Plugin中的以下代碼。

SolrRequest req ;//create a new request object 
req.setBasicAuthCredentials(userName, password); 
solrClient.request(req); 

但是,該代碼抱怨req未初始化。

如果我初始化它,它將被初始化爲null。

SolrRequest req = null;//create a new request object 
req.setBasicAuthCredentials(userName, password); 
solrClient.request(req); 

這將導致空指針異常:

Exception in thread "main" java.lang.NullPointerException 

我們應該如何去把這些代碼,從而可以防止錯誤?

問候,
埃德溫

回答

0

你聲明的變量REQ與空值是NPE的結果。

SolrRequest req = null;//create a new request object 
req.setBasicAuthCredentials(userName, password); 

這應該是這樣的

SolrRequest req = new SolrRequest(method, path); 
+0

感謝@Kevin您的回覆。但是當我在聲明中出現這個錯誤時: '無法實例化類型SolrRequest' 我在Java 8中使用Solr 6.4.2。 –

+0

我對類本身並不熟悉,但它是一個抽象所以你需要尋找適合你需要的圖書館。檢查此http://www.programcreek.com/java-api-examples/index.php?api=org.apache.solr.client.solrj.SolrRequest.METHOD –

+0

根據文檔 '新的QueryRequest(新的SolrQuery( 「*:*」));' –