SolrJ Неопределенная тема - PullRequest
       4

SolrJ Неопределенная тема

0 голосов
/ 03 февраля 2011

Я запускаю следующую программу.Основной поток работает и завершается нормально, но программа продолжает работать из-за потока с именем pool-1-thread-1, который никогда не завершается.Кто-нибудь может подсказать, что не так с кодом?Все файлы конфигурации соответствуют стандартному дистрибутиву Solr.

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 Ответ

1 голос
/ 03 февраля 2011

Похоже, что класс CoreContainer имеет метод с именем shutdown.

Хотя я сам не пробовал, я бы предположил, что добавление следующей строки после распечатки результатов должно остановить все потоки:

coreContainer.shutdown();

Я полагаю, что CoreContainer запускает пул потоков для приема запросов, поэтому необходимо указать объекту, который запустил пул, остановить эти потоки, чтобы все потоки в JVM могли корректно завершить работу. *

...