If I send a ping request to Solr 4.1 from SolrJ 4.1, it works. I don't
have an exact revision number from branch_4x, I don't know how to get it
from SolrJ. The 4.1 server is running solr-impl 4.1-SNAPSHOT 1401798M
with the patch from SOLR-1972 applied, and it's somewhat newer than SolrJ.
Java code snippets:
private static final String PING_HANDLER = "/admin/ping";
query.setRequestHandler(PING_HANDLER);
response = _querySolr.query(query);
If I use this exact same code to talk to a Solr 3.5.0 server (older
version of the SOLR-1972 patch applied) with the ping handler in the
"enabled" state, I get the following exception. The /admin/ping handler
works in a browser on both Solr versions:
Caused by: org.apache.solr.client.solrj.SolrServerException: Error
executing query
at
org.apache.solr.client.solrj.request.QueryRequest.process(QueryRequest.java:98)
at org.apache.solr.client.solrj.SolrServer.query(SolrServer.java:301)
at com.newscom.common.solr.Core.ping(Core.java:396)
... 4 more
Caused by: 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:384)
at
org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:181)
at
org.apache.solr.client.solrj.request.QueryRequest.process(QueryRequest.java:90)
... 6 more
If I use the XMLResponseParser instead, then I get a different exception:
Caused by: org.apache.solr.common.SolrException: parsing error
at
org.apache.solr.client.solrj.impl.XMLResponseParser.processResponse(XMLResponseParser.java:143)
at
org.apache.solr.client.solrj.impl.XMLResponseParser.processResponse(XMLResponseParser.java:104)
at
org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:384)
at
org.apache.solr.client.solrj.impl.HttpSolrServer.request(HttpSolrServer.java:181)
at
org.apache.solr.client.solrj.request.QueryRequest.process(QueryRequest.java:90)
at org.apache.solr.client.solrj.SolrServer.query(SolrServer.java:301)
at com.newscom.common.solr.Core.ping(Core.java:398)
... 4 more
Caused by: java.lang.Exception: really needs to be response or result.
not:html
at
org.apache.solr.client.solrj.impl.XMLResponseParser.processResponse(XMLResponseParser.java:134)
... 10 more
I'm already dealing with the expected "Service Unavailable" exception,
this is something different. Is it going to be possible to make this
work? Should I file an issue in Jira? Is the problem in the newer
SolrJ or in the older Solr? At this time I do not really need the
information in the response, I just need to be able to judge success
(Solr is up and working) by nothing being thrown, and be able to look
into any exception thrown to see whether I've got a disabled handler or
an error condition.
Thanks,
Shawn