You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by kalyan chakravarthy <ka...@yahoo.com> on 2008/07/19 00:52:10 UTC
Issue with wt=javabin and multicore
I recently migrated from standard solr server to multicore implementation. I observed that wt=javabin is failing with this error
java.lang.RuntimeException: This is a binary writer , Cannot write to a characterstream
at org.apache.solr.request.BinaryResponseWriter.write(BinaryResponseWriter.java:48)
I found that in org.apache.solr.servlet.SolrServlet.java, always PrintWriter object is sent as input parameter.
This would fail if the ResponseWriter is of type BinaryResponseWriter.
{code}
QueryResponseWriter responseWriter = core.getQueryResponseWriter(solrReq);
response.setContentType(responseWriter.getContentType(solrReq, solrRsp));
PrintWriter out = response.getWriter();
responseWriter.write(out, solrReq, solrRsp);
{code}
Suggested change would be similar to as implemented in SolrDispatchFilter
{code}
response.setContentType(responseWriter.getContentType(solrReq, solrRsp));
QueryResponseWriter responseWriter = core.getQueryResponseWriter(solrReq);
if (Method.HEAD != reqMethod) {
if (responseWriter instanceof BinaryQueryResponseWriter) {
BinaryQueryResponseWriter binWriter = (BinaryQueryResponseWriter) responseWriter;
binWriter.write(response.getOutputStream(), solrReq, solrRsp);
}else{
PrintWriter out = response.getWriter();
responseWriter.write(out, solrReq, solrRsp);
}
}
{code}
Any thoughts on this will be very valuable.
Thanks
Kalyan
Re: Issue with wt=javabin and multicore
Posted by Ryan McKinley <ry...@gmail.com>.
>
> I found that in org.apache.solr.servlet.SolrServlet.java, always
> PrintWriter object is sent as input parameter.
SolrServlet is deprecated.
If you are going to use new features like MultiCore, make sure you
have the XmlUpdateRequestHandler registered to /update
<requestHandler name="/update"
class="solr.XmlUpdateRequestHandler" />