| Home >> All >> org >> roller >> presentation >> [ xmlrpc Javadoc ] |
Source code: org/roller/presentation/xmlrpc/RollerXMLRPCServlet.java
1 /* 2 * RollerXMLRPCServlet.java 3 */ 4 5 package org.roller.presentation.xmlrpc; 6 7 import org.apache.commons.logging.Log; 8 import org.apache.commons.logging.LogFactory; 9 import org.apache.xmlrpc.XmlRpcServer; 10 11 import java.io.OutputStream; 12 13 import javax.servlet.ServletConfig; 14 import javax.servlet.ServletException; 15 import javax.servlet.http.HttpServlet; 16 import javax.servlet.http.HttpServletRequest; 17 import javax.servlet.http.HttpServletResponse; 18 19 /** 20 * Roller's XML RPC Servlet sets up XmlRpcHandler for Blogger/ API. 21 * 22 * @author David M Johnson 23 * 24 * @web.servlet name="RollerXMLRPCServlet" 25 * @web.servlet-mapping url-pattern="/xmlrpc" 26 */ 27 public class RollerXMLRPCServlet extends HttpServlet 28 { 29 private static Log mLogger = 30 LogFactory.getFactory().getInstance(RollerXMLRPCServlet.class); 31 32 private XmlRpcServer mXmlRpcServer = null; 33 private BloggerAPIHandler mBloggerHandler = null; 34 private MetaWeblogAPIHandler mMetaWeblogHandler = null; 35 36 //------------------------------------------------------------------------ 37 38 /** 39 * Initializes the servlet. 40 */ 41 public void init(ServletConfig config) throws ServletException 42 { 43 super.init(config); 44 mXmlRpcServer = new XmlRpcServer(); 45 try 46 { 47 mBloggerHandler = new BloggerAPIHandler(); 48 mXmlRpcServer.addHandler("blogger", mBloggerHandler); 49 50 mMetaWeblogHandler = new MetaWeblogAPIHandler(); 51 mXmlRpcServer.addHandler("metaWeblog", mMetaWeblogHandler); 52 } 53 catch (Exception e) 54 { 55 mLogger.error("Initialization of XML-RPC servlet failed", e); 56 } 57 } 58 59 //------------------------------------------------------------------------ 60 61 protected void service(HttpServletRequest request, 62 HttpServletResponse response) 63 throws ServletException, java.io.IOException 64 { 65 byte[] result = mXmlRpcServer.execute(request.getInputStream()); 66 67 response.setContentType("text/xml"); 68 response.setContentLength(result.length); 69 70 OutputStream output = response.getOutputStream(); 71 output.write(result); 72 output.flush(); 73 } 74 }