Исключение во время выполнения: неверная версия (ожидается 2, но 60) или данные не в формате 'javabin' в solr

1

Я получаю исключение во время выполнения, когда я делаю следующий простой вызов для ping my solr на localhost.

public static void main(String[] args) throws SolrServerException, IOException
    {
        String url = "http://127.0.0.1:8983/solr/#";
        HttpSolrServer solrServer = new HttpSolrServer(url);
        solrServer.ping();

    }

Журнал исключений:

Exception in thread "main" java.lang.RuntimeException: Invalid version (expected 2, but     60) or the data in not in 'javabin' format
    at org.apache.solr.common.util.JavaBinCodec.unmarshal(JavaBinCodec.java:109)
    at         org.apache.solr.client.solrj.impl.BinaryResponseParser.processResponse(BinaryResponseParser.    java:41)
    at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:407)
    at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:180)
    at org.apache.solr.client.solrj.request.SolrPing.process(SolrPing.java:69)
    at org.apache.solr.client.solrj.SolrServer.ping(SolrServer.java:293)
    at com.tradus.LocalSolrDataAdd.main(LocalSolrDataAdd.java:26)

Может кто-то объяснить, как мы можем избавиться от этой, по-видимому, очень странной ошибки.

  • 0
    Используете ли вы ту же версию Java при компиляции клиента, что и при запуске Solr? Какую версию Solr вы используете?
Теги:
runtimeexception
solr

3 ответа

3
Лучший ответ

Вот версия кода, которая, по-видимому, соответствует вашей stacktrace:

Кажется, что код пытается проверить номер версии ответа на запрос "ping". Ваш клиент Solr получает ответ, который он не понимает. И я предполагаю, что что-то было неправильно сконфигурировано... или вы указали неверный URL.

Получение версии "60" вместо "2" кажется маловероятным. Я предполагаю, что "60" на самом деле является < символом... который предлагает мне, что у вас есть XML или HTML, а не двоичный ответ. В последнем случае это может быть страница из контейнера приложения, сообщающая вам, что она не понимает ваш запрос... или что-то в этом роде.

Я предлагаю вам проверить файлы журнала сервера, чтобы узнать, какие запросы он получает. Если это не удается, попробуйте захватить сетевой трафик на/из вашего клиента.

0

Использование # неверно:

String url = "http://127.0.0.1:8983/solr/#";//  [#] is wrong!!!

Это должно быть правильное использование:

String url = "http://127.0.0.1:8983/solr/collection1; is ok!!!

HttpSolrServer solrServer = new HttpSolrServer(url);

solrServer.ping();
0

Обычно это происходит из-за разной версии между solr-клиентом и сервером solr.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню