1 37 38 package org.jahia.blogs; 39 40 import org.jahia.blogs.api.BloggerAPI; 41 import org.jahia.blogs.api.MetaWeblogAPI; 42 import org.jahia.blogs.api.MovableTypeAPI; 43 44 import javax.servlet.ServletConfig ; 45 import javax.servlet.ServletException ; 46 import javax.servlet.http.HttpServlet ; 47 import javax.servlet.http.HttpServletRequest ; 48 import javax.servlet.http.HttpServletResponse ; 49 50 import org.apache.xmlrpc.XmlRpcServer; 51 52 import org.apache.log4j.Logger; 53 54 import java.io.OutputStream ; 55 import java.io.IOException ; 56 57 62 public class XMLRPCServlet extends HttpServlet { 63 64 static Logger log = Logger.getLogger(MetaWeblogAPIImpl.class); 66 67 private transient XmlRpcServer xmlRpcServer = new XmlRpcServer(); 68 private BloggerAPI bloggerAPIHandler; 69 private MetaWeblogAPI metaWeblogAPIHandler; 70 private MovableTypeAPI movableTypeAPIHandler; 71 72 75 public void init(ServletConfig config) throws ServletException { 76 super.init(config); 77 try { 78 bloggerAPIHandler = new BloggerAPIImpl(); 79 xmlRpcServer.addHandler("blogger", bloggerAPIHandler); 80 81 metaWeblogAPIHandler = new MetaWeblogAPIImpl(); 82 xmlRpcServer.addHandler("metaWeblog", metaWeblogAPIHandler); 83 84 movableTypeAPIHandler = new MovableTypeAPIImpl(); 85 xmlRpcServer.addHandler("mt", movableTypeAPIHandler); 86 87 } catch (Exception e) { 88 log.error("Initialization of XML-RPC servlet failed", e); 89 } 90 } 91 92 94 protected void service(HttpServletRequest request, 95 HttpServletResponse response) 96 throws ServletException , IOException { 97 log.debug("\n\nService for BLOG REQUEST"); 98 99 ServletResources.setCurrentRequest(request); 101 ServletResources.setCurrentResponse(response); 102 ServletResources.setCurrentConfig(super.getServletConfig()); 103 104 byte[] result = xmlRpcServer.execute(request.getInputStream()); 105 log.debug("Result: "+ new String (result)); 106 107 response.setContentType("text/xml"); 108 response.setContentLength(result.length); 109 110 OutputStream output = response.getOutputStream(); 111 output.write(result); 112 output.flush(); 113 114 ServletResources.setCurrentRequest(null); 116 ServletResources.setCurrentResponse(null); 117 ServletResources.setCurrentConfig(null); 118 119 log.debug("END Service for BLOG REQUEST\n"); 120 } 121 } 122 | Popular Tags |