<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: xml-rpc code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Sun, 07 Sep 2008 16:08:39 GMT</pubDate>
    <description>DZone Snippets: xml-rpc code</description>
    <item>
      <title>A Client For the XML-RPC Servlet</title>
      <link>http://snippets.dzone.com/posts/show/1636</link>
      <description>// When combined with the Apache XML-RPC library this code&lt;br /&gt;// will let you call the servlet in the snippet "An XML-RPC&lt;br /&gt;// Servlet". Of course, since XML-RPC is pretty ubiquitous&lt;br /&gt;// you can also use this code to call servers in dozens of&lt;br /&gt;// other languages as well.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;import java.util.Vector;&lt;br /&gt;&lt;br /&gt;import org.apache.commons.logging.Log;&lt;br /&gt;import org.apache.commons.logging.LogFactory;&lt;br /&gt;import org.apache.xmlrpc.XmlRpcClient;&lt;br /&gt;&lt;br /&gt;public class XMLRPCTestClient {&lt;br /&gt;    private static final String serverAddress = &lt;br /&gt;	"http://localhost:8080/lol/remoteapi";&lt;br /&gt;    private static Log log = LogFactory.getLog(XMLRPCTestClient.class);&lt;br /&gt;    &lt;br /&gt;    /** Creates a new instance of XMLRPCTestClient */&lt;br /&gt;    public XMLRPCTestClient(String address) {&lt;br /&gt;        try {&lt;br /&gt;            XmlRpcClient xmlrpc = new XmlRpcClient(address);&lt;br /&gt;&lt;br /&gt;            Vector params = new Vector();&lt;br /&gt;            params.addElement("Hello World! Hello!");&lt;br /&gt;&lt;br /&gt;            try {&lt;br /&gt;                // this method returns a string&lt;br /&gt;                String result = (String) xmlrpc.execute("echo.echo", params);&lt;br /&gt;                System.out.println(result);&lt;br /&gt;            } catch (Exception e) {&lt;br /&gt;                log.error("The remote procedure call failed.", e);&lt;br /&gt;            }&lt;br /&gt;        } catch (java.net.MalformedURLException mue) {&lt;br /&gt;            log.error(&lt;br /&gt;                "The address given for the XML-RPC interface is bad: " + address);&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    /**&lt;br /&gt;     * @param args the command line arguments&lt;br /&gt;     */&lt;br /&gt;    public static void main(String[] args) {&lt;br /&gt;        XMLRPCTestClient xmlRPCTestClient = new XMLRPCTestClient(&lt;br /&gt;            serverAddress);&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Mon, 06 Mar 2006 01:50:55 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/1636</guid>
      <author>JohnMunsch (John Munsch)</author>
    </item>
    <item>
      <title>An XML-RPC Servlet</title>
      <link>http://snippets.dzone.com/posts/show/1635</link>
      <description>// This depends upon the Apache XML-RPC library.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;import java.io.OutputStream;&lt;br /&gt;&lt;br /&gt;import javax.servlet.ServletConfig;&lt;br /&gt;import javax.servlet.ServletException;&lt;br /&gt;import javax.servlet.http.HttpServlet;&lt;br /&gt;import javax.servlet.http.HttpServletRequest;&lt;br /&gt;import javax.servlet.http.HttpServletResponse;&lt;br /&gt;&lt;br /&gt;import org.apache.commons.logging.Log;&lt;br /&gt;import org.apache.commons.logging.LogFactory;&lt;br /&gt;import org.apache.xmlrpc.XmlRpcServer;&lt;br /&gt;&lt;br /&gt;public class XmlRpcServlet extends HttpServlet {&lt;br /&gt;    public class EchoHandler {&lt;br /&gt;        public String echo(String input) {&lt;br /&gt;            return input;&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;	&lt;br /&gt;    private XmlRpcServer server = new XmlRpcServer();&lt;br /&gt;&lt;br /&gt;    private static Log log = LogFactory.getLog(XmlRpcServlet.class);&lt;br /&gt;&lt;br /&gt;	@Override&lt;br /&gt;	public void init(ServletConfig config) throws ServletException {&lt;br /&gt;        server.addHandler("echo", new EchoHandler());&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	@Override&lt;br /&gt;	protected void doGet(HttpServletRequest request, &lt;br /&gt;			HttpServletResponse response) throws ServletException, IOException {&lt;br /&gt;        doPost(request, response);&lt;br /&gt;	}&lt;br /&gt;&lt;br /&gt;	@Override&lt;br /&gt;	protected void doPost(HttpServletRequest request, &lt;br /&gt;			HttpServletResponse response) throws ServletException, IOException {&lt;br /&gt;        byte[] result = server.execute(request.getInputStream());&lt;br /&gt;        &lt;br /&gt;        response.setContentType("text/xml");&lt;br /&gt;        response.setContentLength(result.length);&lt;br /&gt;        &lt;br /&gt;        OutputStream output = response.getOutputStream();&lt;br /&gt;        output.write(result);&lt;br /&gt;        output.flush();&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;// The following needs to be added to your web.xml file to&lt;br /&gt;// expose the servlet so it may be called remotely.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;  &lt;servlet&gt;&lt;br /&gt;    &lt;servlet-name&gt;XmlRpcServlet&lt;/servlet-name&gt;&lt;br /&gt;    &lt;servlet-class&gt;XmlRpcServlet&lt;/servlet-class&gt;&lt;br /&gt;  &lt;/servlet&gt;&lt;br /&gt;&lt;br /&gt;  &lt;servlet-mapping&gt;&lt;br /&gt;    &lt;servlet-name&gt;XmlRpcServlet&lt;/servlet-name&gt;&lt;br /&gt;    &lt;url-pattern&gt;/remoteapi&lt;/url-pattern&gt;        &lt;br /&gt;  &lt;/servlet-mapping&gt;    &lt;br /&gt;&lt;/code&gt;&lt;br /&gt;</description>
      <pubDate>Mon, 06 Mar 2006 01:47:26 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/1635</guid>
      <author>JohnMunsch (John Munsch)</author>
    </item>
  </channel>
</rss>
