Java 通过XMLRPC 与服务器交互

使用java通过XMLRPC与服务器进行通讯


服务端代码:

public class XmlRpcServlet extends HttpServlet {

	 /**
	 * 
	 */
	private static final long serialVersionUID = 2202885997961418581L;
	
	private XmlRpcServletServer server;
     
     public void init(ServletConfig pConfig) throws ServletException {
           super.init(pConfig);
           try {
                 // create a new XmlRpcServletServer object
                 server = new XmlRpcServletServer();
                 // set up handler mapping of XmlRpcServletServer object
                 PropertyHandlerMapping phm = new PropertyHandlerMapping();
                 phm.addHandler("HelloHandler", HelloService.class);                 
                 server.setHandlerMapping(phm);
                 // more config of XmlRpcServletServer object     
                 XmlRpcServerConfigImpl serverConfig = (XmlRpcServerConfigImpl)server.getConfig();
                 serverConfig.setEnabledForExtensions(true);
                 serverConfig.setContentLengthOptional(false);
           } catch (XmlRpcException e) {
                 try {
                       log("Failed to create XmlRpcServer: " + e.getMessage(), e);
                 } catch (Throwable ignore) {
                 }
                 throw new ServletException(e);
           }
     }
    
     public void doPost(HttpServletRequest pRequest, HttpServletResponse pResponse)
           throws IOException, ServletException {
           server.execute(pRequest, pResponse);
     }
	
}


将servlet配置到web.xml中

	<servlet>
        <servlet-name>XmlRpcServlet</servlet-name>
        <servlet-class>com.xmlrpc.server.XmlRpcServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>XmlRpcServlet</servlet-name>
        <url-pattern>/xmlrpc</url-pattern>
    </servlet-mapping>

服务端handler,可自定义

public class HelloService {
	 
	 public String sayHello(String name){
	  return "Hello: "+name+" !";
	 }

}

客户端代码:

public class RpcClient {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		try {
            // config client
            XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
            config.setServerURL(new URL("http://127.0.0.1:8080/RPCFirstProject/xmlrpc"));      // should be modified according to your configuration of jsp container
            // create a new XmlRpcClient object and bind above config object with it
            XmlRpcClient client = new XmlRpcClient();
            client.setConfig(config);
            // create parameter list
            Vector<String> params = new Vector<String>();
            params.addElement("Tom");
            // execute XML-RPC call
            Object result = client.execute("HelloHandler.sayHello", params);                 
            System.out.println(result);
      } catch (MalformedURLException e) {
            System.out.println(e.toString());
      } catch (XmlRpcException e) {
            System.out.println(e.toString());
      }
	}
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值