2011-02-03 25 views
0

私は次のプログラムを実行しています。メインスレッドは正常に実行され終了しますが、終了しないpool-1-thread-1というスレッドが原因でプログラムは実行を継続します。コードに何が間違っているのか誰でも提案できますか?設定ファイルは、すべてSolrの標準ディストリビューションで提供されています。SolrJ未終了スレッド

package solrapp; 

import org.apache.solr.client.solrj.SolrQuery; 
import org.apache.solr.client.solrj.SolrServer; 
import org.apache.solr.client.solrj.embedded.EmbeddedSolrServer; 
import org.apache.solr.client.solrj.response.QueryResponse; 
import org.apache.solr.common.SolrDocumentList; 
import org.apache.solr.core.CoreContainer; 

public class SolrApp { 

    public static void main(String[] args) throws Exception { 
     CoreContainer coreContainer = new CoreContainer.Initializer().initialize(); 
     SolrServer server = new EmbeddedSolrServer(coreContainer, null); 
     SolrQuery query = new SolrQuery("*:*"); 
     QueryResponse response = server.query(query); 
     SolrDocumentList results = response.getResults(); 
     System.out.println(results); 
    } 
} 

答えて

1

CoreContainerクラスがshutdownというメソッドを持っていることが表示されます。

私はそれを自分自身を試していませんが、私は結果をプリントアウトした後、次の行を追加すると、すべてのスレッドを停止する必要があることを推測する:

coreContainer.shutdown(); 

私の推測では、CoreContainerが起動していることだろうスレッドプールはクエリを受け入れるため、プールを起動したオブジェクトにそれらのスレッドを停止するよう指示して、JVM上のすべてのスレッドを正常にシャットダウンできるようにする必要があります。

+0

ありがとうございました。 – z12345

関連する問題