1 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 27 public class RollerXMLRPCServlet extends HttpServlet 28 { 29 static final long serialVersionUID = -4424719615968330852L; 30 31 private static Log mLogger = 32 LogFactory.getFactory().getInstance(RollerXMLRPCServlet.class); 33 34 private transient XmlRpcServer mXmlRpcServer = new XmlRpcServer(); 35 private BloggerAPIHandler mBloggerHandler = null; 36 private MetaWeblogAPIHandler mMetaWeblogHandler = null; 37 38 40 43 public void init(ServletConfig config) throws ServletException 44 { 45 super.init(config); 46 try 47 { 48 mBloggerHandler = new BloggerAPIHandler(); 49 mXmlRpcServer.addHandler("blogger", mBloggerHandler); 50 51 mMetaWeblogHandler = new MetaWeblogAPIHandler(); 52 mXmlRpcServer.addHandler("metaWeblog", mMetaWeblogHandler); 53 } 54 catch (Exception e) 55 { 56 mLogger.error("Initialization of XML-RPC servlet failed", e); 57 } 58 } 59 60 62 protected void service(HttpServletRequest request, 63 HttpServletResponse response) 64 throws ServletException , java.io.IOException 65 { 66 byte[] result = mXmlRpcServer.execute(request.getInputStream()); 67 68 response.setContentType("text/xml"); 69 response.setContentLength(result.length); 70 71 OutputStream output = response.getOutputStream(); 72 output.write(result); 73 output.flush(); 74 } 75 } 76 | Popular Tags |