2016-08-31 2 views
0

Всякий раз, когда я выполняю запрос на Solr, даже самый простой запрос *:*, я получаю сообщение об ошибкеSolrJ недопустимый контент типа

Exception in thread "main" org.apache.solr.client.solrj.SolrServerException: Error executing query 
at org.apache.solr.client.solrj.request.QueryRequest.process(QueryRequest.java:100) 
at org.apache.solr.client.solrj.SolrServer.query(SolrServer.java:301) 
at com.atmire.dspace.versioning.ModificationLogger.search(ModificationLogger.java:294) 
at com.atmire.dspace.versioning.ModificationsReporter.main(ModificationsReporter.java:92) 
Caused by: org.apache.http.ParseException: Invalid content type: 
at org.apache.http.entity.ContentType.parse(ContentType.java:233) 
at org.apache.solr.client.solrj.impl.HttpSolrServer.executeMethod(HttpSolrServer.java:496) 
at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:210) 
at org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:206) 
at org.apache.solr.client.solrj.request.QueryRequest.process(QueryRequest.java:91) 
... 3 more 

Хотя тот же запрос работает отлично против при использовании WebClient или с помощью завиток:

curl http://localhost:8080/solr/versioning/select\?q\=\*%3A\*\&wt\=json\&indent\=true

Я совершенно запутался, почему запрос не будет работать с Java. Соответствующий код ява

SolrQuery query = new SolrQuery().setQuery("*:*"); 
    query.setRows(rpp).setStart(start); 
    QueryResponse queryResponse = solr.query(query); 
    return queryResponse.getResults(); 

Кажется, что SolrQuery ни Solr есть возможность явно установить Content-Type, по крайней мере, не то, что я мог бы найти в API документации. Кроме того, я очень удивлен, что, если мне придется описывать Content-Type, это фактически работает с завитком, даже если я не добавляю wt=json. Хотя я подозреваю, что это ответ, а не запрос.

+1

Вы проверяете, вызвал ли журнал Solr на стороне сервера (а не для Solr) ошибку? Это может произойти, если SolrJ не получит двоичный ответ, как ожидалось (SolrJ использует сериализованные POJO IIRC). Журнал Solr также должен показать вам, какой запрос Solr получил от SolrJ. – MatsLindh

+0

Вы добавили бы часть своего кода, как создается «сервер»? Вероятно, вы используете что-то встроенное, но вы нацеливаете что-то дистанционное. – cheffe

ответ

1

Похоже, что на самом деле это не указывает на сервер Solr. Можете ли вы дважды проверить свой предыдущий код и посмотреть, действительно ли вы устанавливаете правильный хост и порт (который не является для вас по умолчанию), а также правильную коллекцию.

Смежные вопросы