From bf363aafc7579855e618a871cdac7f7b36c92c60 Mon Sep 17 00:00:00 2001 From: Yonik Seeley Date: Thu, 13 Jul 2006 17:22:21 +0000 Subject: [PATCH] get content-type from request writer git-svn-id: https://svn.apache.org/repos/asf/incubator/solr/trunk@421669 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/solr/request/QueryResponseWriter.java | 5 +++++ .../org/apache/solr/request/XMLResponseWriter.java | 4 ++++ .../src/org/apache/solr/servlet/SolrServlet.java | 10 +++------- 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/src/java/org/apache/solr/request/QueryResponseWriter.java b/src/java/org/apache/solr/request/QueryResponseWriter.java index 5f9a636e9e6..9baf31a5ffe 100644 --- a/src/java/org/apache/solr/request/QueryResponseWriter.java +++ b/src/java/org/apache/solr/request/QueryResponseWriter.java @@ -24,6 +24,11 @@ import java.io.IOException; * @version $Id$ */ public interface QueryResponseWriter { + public static String CONTENT_TYPE_XML_UTF8="text/xml;charset=UTF-8"; + public static String CONTENT_TYPE_TEXT_UTF8="text/plain;charset=UTF-8"; + public static String CONTENT_TYPE_TEXT_ASCII="text/plain;charset=US-ASCII"; + public void write(Writer writer, SolrQueryRequest request, SolrQueryResponse response) throws IOException; + public String getContentType(SolrQueryRequest request, SolrQueryResponse response); } diff --git a/src/java/org/apache/solr/request/XMLResponseWriter.java b/src/java/org/apache/solr/request/XMLResponseWriter.java index 046b7ded474..6808fad3fc7 100644 --- a/src/java/org/apache/solr/request/XMLResponseWriter.java +++ b/src/java/org/apache/solr/request/XMLResponseWriter.java @@ -28,6 +28,10 @@ public class XMLResponseWriter implements QueryResponseWriter { public void write(Writer writer, SolrQueryRequest req, SolrQueryResponse rsp) throws IOException { XMLWriter.writeResponse(writer,req,rsp); } + + public String getContentType(SolrQueryRequest request, SolrQueryResponse response) { + return CONTENT_TYPE_XML_UTF8; + } } diff --git a/src/webapp/src/org/apache/solr/servlet/SolrServlet.java b/src/webapp/src/org/apache/solr/servlet/SolrServlet.java index e25f0e89ce6..acd30c7bd4f 100644 --- a/src/webapp/src/org/apache/solr/servlet/SolrServlet.java +++ b/src/webapp/src/org/apache/solr/servlet/SolrServlet.java @@ -43,8 +43,6 @@ public class SolrServlet extends HttpServlet { final Logger log = Logger.getLogger(SolrServlet.class.getName()); SolrCore core; - private static String CONTENT_TYPE="text/xml;charset=UTF-8"; - public void init() throws ServletException { log.info("SolrServlet.init()"); @@ -90,13 +88,11 @@ public class SolrServlet extends HttpServlet { try { solrRsp = new SolrQueryResponse(); solrReq = new SolrServletRequest(core, request); - // log.severe("REQUEST PARAMS:" + solrReq.getParamString()); core.execute(solrReq, solrRsp); if (solrRsp.getException() == null) { - response.setContentType(CONTENT_TYPE); - PrintWriter out = response.getWriter(); - QueryResponseWriter responseWriter = core.getQueryResponseWriter(solrReq); + response.setContentType(responseWriter.getContentType(solrReq, solrRsp)); + PrintWriter out = response.getWriter(); responseWriter.write(out, solrReq, solrRsp); } else { Exception e = solrRsp.getException(); @@ -122,7 +118,7 @@ public class SolrServlet extends HttpServlet { try { // hmmm, what if this was already set to text/xml? try{ - response.setContentType(CONTENT_TYPE); + response.setContentType(QueryResponseWriter.CONTENT_TYPE_TEXT_UTF8); // response.setCharacterEncoding("UTF-8"); } catch (Exception e) {} try{response.setStatus(rc);} catch (Exception e) {}