全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Java Apache XML-RPC库使用教程

Apache XML-RPC 是一个已停止维护的轻量级纯 Java XML-RPC 库,最新版 3.1.3 发布于 2009 年,仅建议用于遗留系统;支持 JDK 1.4+,兼容现代 JDK,但不推荐新项目使用。

Apache XML-RPC 是一个轻量级、纯 Java 实现的 XML-RPC 协议客户端与服务器端库,适合在简单远程调用场景中快速集成。它不依赖 Servlet 容器,可嵌入任意 Java 应用,但已停止维护(最新稳定版为 3.1.3,发布于 2009 年),仅建议用于遗留系统或低复杂度内部工具。

添加依赖(Maven)

使用 Maven 管理依赖时,在 pom.xml 中加入:


  org.apache.xmlrpc
  xmlrpc-client
  3.1.3

如需搭建服务端,还需添加 xmlrpc-serverxmlrpc-common 依赖。注意:3.x 版本要求 JDK 1.4+,与现代 JDK(如 17+)兼容性良好,但需避免在新项目中引入。

编写简单客户端调用

XML-RPC 调用本质是发送 HTTP POST 请求,参数和返回值自动序列化为 XML。基本步骤如下:

  • 创建 XmlRpcClientConfigImpl 实例,设置服务端 URL(如 http://localhost:8080/RPC2
  • 初始化 XmlRpcClient,传入配置对象
  • 调用 execute() 方法,传入方法名(字符串)和参数列表(Object[])
  • 返回值为 Object 类型,需按约定类型强转(如 Integer、String、HashMap)

示例:调用远程 sample.add 方法计算两数之和:

XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
config.setServerURL(new URL("http://localhost:8080/RPC2"));
XmlRpcClient client = new XmlRpcClient();
client.setConfig(config);
Object result = client.execute("sample.add", new Object[]{5, 3});
int sum = ((Number) result).intValue(); // 返回值通常是 Number 子类

搭建基础服务端

服务端需注册处理类并启动 HTTP 服务器(推荐使用内置的 Jetty 或外置容器):

  • 定义一个 POJO 类(如 Calculator),方法需 public、非 static、有明确返回值
  • 创建 PropertyHandlerMapping,将方法名前缀(如 sample.)映射到该类
  • XmlRpcServer 注册 handler mapping,再通过 XmlRpcServletJettyWebServer 暴露服务

若使用 Jetty 内嵌(xmlrpc-server 自带支持):

XmlRpcServer server = new XmlRpcServer();
PropertyHandlerMapping phm = new PropertyHandlerMapping();
phm.load(Thread.currentThread().getContextClassLoader(), "handler.properties");
// 或直接注册:phm.addHandler("sample", Calculator.class);
server.setHandlerMapping(phm);
JettyWebServer jetty = new JettyWebServer(8080, server);
jetty.start();

注意事项与常见问题

该库对数据类型支持有限,易出错点集中在:

  • 日期必须用 java.util.Date,不能用 LocalDate / LocalDateTime
  • Map 类型会被转为 struct,key 必须是 String;List 对应 array
  • 异常不会自动传播,服务端抛出异常时,客户端收到的是 XmlRpcException,需检查 message 是否含原始错误信息
  • 中文参数需确保 HTTP 编码为 UTF-8(客户端 config 可设 setEncoding("UTF-8")

不复杂但容易忽略。


# java  # apache  # 编码  # app  # 工具  # ssl  # 常见问题 


相关文章: 广平建站公司哪家专业可靠?如何选择?  如何快速登录WAP自助建站平台?  定制建站价位费用解析与套餐推荐全攻略  宁波自助建站系统如何快速打造专业企业网站?  网站制作话术技巧,网站推广做的好怎么话术?  如何用景安虚拟主机手机版绑定域名建站?  如何在阿里云香港服务器快速搭建网站?  建站之星后台搭建步骤解析:模板选择与产品管理实操指南  枣阳网站制作,阳新火车站打的到仙岛湖多少钱?  微信小程序制作网站有哪些,微信小程序需要做网站吗?  教学论文网站制作软件有哪些,写论文用什么软件 ?  贸易公司网站制作流程,出口贸易网站设计怎么做?  建站10G流量真的够用吗?如何应对访问高峰?  巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成  建站之星与建站宝盒如何选择最佳方案?  如何选择高效可靠的多用户建站源码资源?  如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法  制作网站的网址是什么,请问后缀为.com和.com.cn还有.cn的这三种网站是分别是什么类型的网站?  制作宣传网站的软件,小红书可以宣传网站吗?  nginx修改上传文件大小限制的方法  建站主机服务器选型指南与性能优化方案解析  Swift开发中switch语句值绑定模式  如何快速搭建高效WAP手机网站?  如何在企业微信快速生成手机电脑官网?  再谈Python中的字符串与字符编码(推荐)  专业网站建设制作报价,网页设计制作要考什么证?  建站之星图片链接生成指南:自助建站与智能设计教程  如何获取开源自助建站系统免费下载链接?  魔方云NAT建站如何实现端口转发?  浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?  如何在Windows服务器上快速搭建网站?  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  如何用狗爹虚拟主机快速搭建网站?  浅谈Javascript中的Label语句  大连 网站制作,大连天途有线官网?  手机怎么制作网站教程步骤,手机怎么做自己的网页链接?  如何快速启动建站代理加盟业务?  如何选择网络建站服务器?高效建站必看指南  智能起名网站制作软件有哪些,制作logo的软件?  想学网站制作怎么学,建立一个网站要花费多少?  全景视频制作网站有哪些,全景图怎么做成网页?  网站制作服务平台,有什么网站可以发布本地服务信息?  临沂网站制作企业,临沂第三中学官方网站?  建站之星下载版如何获取与安装?  如何通过商城自助建站源码实现零基础高效建站?  专业制作网站的公司哪家好,建立一个公司网站的费用.有哪些部分,分别要多少钱?  如何确保西部建站助手FTP传输的安全性?  教程网站设计制作软件,怎么创建自己的一个网站?  红河网站制作公司,红河事业单位身份证如何上传?  相亲简历制作网站推荐大全,新相亲大会主持人小萍萍资料? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。