KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > roller > presentation > xmlrpc > RollerXMLRPCServlet


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 JavaDoc;
12
13 import javax.servlet.ServletConfig JavaDoc;
14 import javax.servlet.ServletException JavaDoc;
15 import javax.servlet.http.HttpServlet JavaDoc;
16 import javax.servlet.http.HttpServletRequest JavaDoc;
17 import javax.servlet.http.HttpServletResponse JavaDoc;
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 JavaDoc
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     //------------------------------------------------------------------------
39

40     /**
41      * Initializes the servlet.
42      */

43     public void init(ServletConfig JavaDoc config) throws ServletException JavaDoc
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 JavaDoc e)
55         {
56             mLogger.error("Initialization of XML-RPC servlet failed", e);
57         }
58     }
59
60     //------------------------------------------------------------------------
61

62     protected void service(HttpServletRequest JavaDoc request,
63                                   HttpServletResponse JavaDoc response)
64         throws ServletException JavaDoc, java.io.IOException JavaDoc
65     {
66         byte[] result = mXmlRpcServer.execute(request.getInputStream());
67
68         response.setContentType("text/xml");
69         response.setContentLength(result.length);
70
71         OutputStream JavaDoc output = response.getOutputStream();
72         output.write(result);
73         output.flush();
74     }
75 }
76
Popular Tags