java实现xml-rpc客户端和服务端
客户端代码:
package test_xmlrpc.test;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import org.apache.xmlrpc.client.XmlRpcClient;
import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;
public class RpcClient {
public static void main(String[] args) throws Exception {
// 实例化一个客户端配置对象 XmlRpcClientConfigImpl config,为该实例指定服务端 URL 属性
XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
config.setServerURL(new URL("http://127.0.0.1:8005/xmlrpc"));
//创建 XmlRpcClient 对象,为其指定配置对象
XmlRpcClient client = new XmlRpcClient();
client.setConfig(config);
// 创建参数数组
List<String> list = new ArrayList<String>();
list.add("xx");
list.add("hello");
// 调用服务器端方法“Hello”
String result = (String) client.execute("HelloHandler.Hello", list);
System.out.println(result);
}
}
服务端代码:
package test_xmlrpc.test;
import org.apache.xmlrpc.server.PropertyHandlerMapping;
import org.apache.xmlrpc.server.XmlRpcServer;
import org.apache.xmlrpc.server.XmlRpcServerConfigImpl;
import org.apache.xmlrpc.webserver.WebServer;
public class RpcServer {
private static final int port = 8005;
public static void main(String[] args) throws Exception {
WebServer webServer = new WebServer(port);
// XmlRpcServer 对象用于接收并执行来自客户端的 XML-RPC 调用
XmlRpcServer xmlRpcServer = webServer.getXmlRpcServer();
PropertyHandlerMapping phm = new PropertyHandlerMapping();
phm.addHandler("HelloHandler", HelloHandler.class);
xmlRpcServer.setHandlerMapping(phm);
XmlRpcServerConfigImpl config = (XmlRpcServerConfigImpl) xmlRpcServer.getConfig();
// enabledForExtensions: 指定是否启用 Apache 对 XML-RPC 的扩展。
config.setEnabledForExtensions(true);
config.setContentLengthOptional(false);
webServer.start();
}
}
HelloHandler类:
package test_xmlrpc.test;
public class HelloHandler {
public String Hello(String name,String word){
return name+word;
}
}
附详解链接:XML-RPC 的 Apache 实现
最新文章
- 利用for循环找出1000以内的质数
- 6. web前端开发分享-css,js移动篇
- Java泛型 E、T、K、V、N
- Delphi word编辑
- javascript 第26节 jQuery对象
- oracle 分区表exchange原理
- C3制作导航栏分割线及立体风格
- 游标的小知识(借鉴and整理)
- SpringBoot图片上传(四) 一个input上传N张图,支持各种类型
- node.js服务器搭建
- Linux下通过 rm -f 删除大量文件时报错:Argument list too long
- 我对CopyOnWrite的思考
- tmux的复制粘贴
- phpstorm之ssh链接远程Linux服务器
- shell编程中的单/双 小括号, 中括号, 大括号
- openstack网络基本概念(转)
- Internet History, Technology and Security (Week3)
- 洛谷 P1878 舞蹈课 解题报告
- java int类型转换成String , 不足10位 在前面补0
- django中models阅读笔记
热门文章
- 深入浅出Node.js (4) - 异步编程
- 【转】 Ubuntu下配置USB转串口及串口工具配置--不错
- c++ 13
- Windows无需CygWin 使用NDK开发
- poj 3180 The Cow Prom(tarjan+缩点 easy)
- Test注解的两个属性:expected和timeout
- HDU4496_D-City(并查集删边/逆向)
- oracle数据库recover和restore的区别
- xUtils的文件下载与安装,xUtils的文件上传
- 提示框的优化之自定义Toast组件之(二)Toast组件的业务逻辑实现