Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

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  }