热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

xmlRpc客户端例子

1,Thexmlrpcclient-----xmlrpc客户端在说XML-RPCserver前,我们需要拥有一个XmlRpcClient的实例。它是

1,The xmlrpcclient-----xmlrpc客户端

在说XML-RPC server前,我们需要拥有一个XmlRpcClient的实例。

它是一个无状态,线程安全的对象。客户端通过设置如下对象来进行配置:

A,ClientConfig:这个对象是XmlRpcClientConfig的实例。它有许多的原子属性,定义了如SERVER URL,credentials,字符集等等详细设置。

B,TransportFactory:它的任务是创建一个用于与服务端通信的对象,这个对象使用clientConfig的设置进行配置。

C,XmlWriterFactory:它是一个用来创建XML的对象。

客户端的一个例子:

import org.apache.xmlrpc.client.XmlRpcClient;

import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;

XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();

config.setServerURL(new URL("http://127.0.0.1:8080/xmlrpc"));

XmlRpcClient client = new XmlRpcClient();

client.setConfig(config);

Object[] params = new Object[]{new Integer(33), new Integer(9)};

Integer result = (Integer) client.execute("Calculator.add", params);

这个示例展示我了我们调用远端的Calculator对象的add方法,参数由params指定,result作为方法的返回值。

这个示例默认使用的是java.net.URLConnection类来与服务端进行连接。假如你想要使用HTTPClient包来与服务端连接,则只需要做一个修改:

import org.apache.xmlrpc.client.XmlRpcClient;

import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;

import org.apache.xmlrpc.client.XmlRpcCommonsTransportFactory;

XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();

config.setServerURL(new URL("http://127.0.0.1:8080/XmlRpcServlet"));

XmlRpcClient client = new XmlRpcClient();

client.setTransportFactory(new XmlRpcCommonsTransportFactory(client));

client.setConfig(config);

Object[] params = new Object[]{new Integer(2), new Integer(3)};

Integer result = (Integer) client.execute("Calculator.add", params);

换句话说,transport factory决定了客户端如何与服务端进行通信,最重要的tansprot factory如下:

A,XmlRpcSunHttpTransprotFactory:这是默认的transport factory,通过使用java.net.HttpURLConnection来与HTTP服务端 建立连接。

B,XmlRpcCommonsTransportFactory:另一个HTTP transport factory,通过使用the jakarta commons httpclient来与服务端进行通信。

C,XmlRpcLiteHttpTransportFactory:这也是一个HTTP transport factory,它是基于一个私有的,非常轻量的HTTP客户端。它很可能是最快的transport factory。但是,它不能支持HTTP/1.1,因此不能使用keepalive连接。

D,XmlRpcLocalTransportFactory:这个transport factory 有一个内嵌的XML-RPC服务器,可以通过直接的java调用来调用它。这个对于调试和开发是特别有用。

2,Server-side XML-RPC(服务端XML-RPC)

对于服务端来说,和客户端其实没太大区别。首先,需要一个叫做XmlRpcServer的对象。这个对象的目的是接收和执行来自客户端的XML-RPC调用。XmlRpcServer能够被嵌入到一个servlet container或者另一个HTTP server中。就像the local transport一样,XML-RPC server被嵌到了client application中。

就像XmlRpcClient,XmlRpcServer需要一个配置,这个配置通过XmlRpcServerConfigImpl对象提供。



推荐阅读
  • 在Java Web服务开发中,Apache CXF 和 Axis2 是两个广泛使用的框架。CXF 由于其与 Spring 框架的无缝集成能力,以及更简便的部署方式,成为了许多开发者的首选。本文将详细介绍如何使用 CXF 框架进行 Web 服务的开发,包括环境搭建、服务发布和客户端调用等关键步骤,为开发者提供一个全面的实践指南。 ... [详细]
  • PHP 5.5.31 和 PHP 5.6.17 安全更新发布
    PHP 5.5.31 和 PHP 5.6.17 已正式发布,主要包含多个安全修复。强烈建议所有用户尽快升级至最新版本以确保系统安全。 ... [详细]
  • Spring Data JdbcTemplate 入门指南
    本文将介绍如何使用 Spring JdbcTemplate 进行数据库操作,包括查询和插入数据。我们将通过一个学生表的示例来演示具体步骤。 ... [详细]
  • Spring – Bean Life Cycle
    Spring – Bean Life Cycle ... [详细]
  • 优化后的标题:深入探讨网关安全:将微服务升级为OAuth2资源服务器的最佳实践
    本文深入探讨了如何将微服务升级为OAuth2资源服务器,以订单服务为例,详细介绍了在POM文件中添加 `spring-cloud-starter-oauth2` 依赖,并配置Spring Security以实现对微服务的保护。通过这一过程,不仅增强了系统的安全性,还提高了资源访问的可控性和灵活性。文章还讨论了最佳实践,包括如何配置OAuth2客户端和资源服务器,以及如何处理常见的安全问题和错误。 ... [详细]
  • REST与RPC:选择哪种API架构风格?
    在探讨REST与RPC这两种API架构风格的选择时,本文首先介绍了RPC(远程过程调用)的概念。RPC允许客户端通过网络调用远程服务器上的函数或方法,从而实现分布式系统的功能调用。相比之下,REST(Representational State Transfer)则基于资源的交互模型,通过HTTP协议进行数据传输和操作。本文将详细分析两种架构风格的特点、适用场景及其优缺点,帮助开发者根据具体需求做出合适的选择。 ... [详细]
  • 一、Tomcat安装后本身提供了一个server,端口配置默认是8080,对应目录为:..\Tomcat8.0\webapps二、Tomcat8.0配置多个端口,其实也就是给T ... [详细]
  • 一个建表一个执行crud操作建表代码importandroid.content.Context;importandroid.database.sqlite.SQLiteDat ... [详细]
  • 本文介绍如何使用OpenCV和线性支持向量机(SVM)模型来开发一个简单的人脸识别系统,特别关注在只有一个用户数据集时的处理方法。 ... [详细]
  • IOS Run loop详解
    为什么80%的码农都做不了架构师?转自http:blog.csdn.netztp800201articledetails9240913感谢作者分享Objecti ... [详细]
  • 本文深入解析了通过JDBC实现ActiveMQ消息持久化的机制。JDBC能够将消息可靠地存储在多种关系型数据库中,如MySQL、SQL Server、Oracle和DB2等。采用JDBC持久化方式时,数据库会自动生成三个关键表:`activemq_msgs`、`activemq_lock`和`activemq_ACKS`,分别用于存储消息数据、锁定信息和确认状态。这种机制不仅提高了消息的可靠性,还增强了系统的可扩展性和容错能力。 ... [详细]
  • Java Socket 关键参数详解与优化建议
    Java Socket 的 API 虽然被广泛使用,但其关键参数的用途却鲜为人知。本文详细解析了 Java Socket 中的重要参数,如 backlog 参数,它用于控制服务器等待连接请求的队列长度。此外,还探讨了其他参数如 SO_TIMEOUT、SO_REUSEADDR 等的配置方法及其对性能的影响,并提供了优化建议,帮助开发者提升网络通信的稳定性和效率。 ... [详细]
  • Python 伦理黑客技术:深入探讨后门攻击(第三部分)
    在《Python 伦理黑客技术:深入探讨后门攻击(第三部分)》中,作者详细分析了后门攻击中的Socket问题。由于TCP协议基于流,难以确定消息批次的结束点,这给后门攻击的实现带来了挑战。为了解决这一问题,文章提出了一系列有效的技术方案,包括使用特定的分隔符和长度前缀,以确保数据包的准确传输和解析。这些方法不仅提高了攻击的隐蔽性和可靠性,还为安全研究人员提供了宝贵的参考。 ... [详细]
  • 本文详细介绍了一种利用 ESP8266 01S 模块构建 Web 服务器的成功实践方案。通过具体的代码示例和详细的步骤说明,帮助读者快速掌握该模块的使用方法。在疫情期间,作者重新审视并研究了这一未被充分利用的模块,最终成功实现了 Web 服务器的功能。本文不仅提供了完整的代码实现,还涵盖了调试过程中遇到的常见问题及其解决方法,为初学者提供了宝贵的参考。 ... [详细]
  • 本文全面解析了 gRPC 的基础知识与高级应用,从 helloworld.proto 文件入手,详细阐述了如何定义服务接口。例如,`Greeter` 服务中的 `SayHello` 方法,该方法在客户端和服务器端的消息交互中起到了关键作用。通过实例代码,读者可以深入了解 gRPC 的工作原理及其在实际项目中的应用。 ... [详细]
author-avatar
2d15064efa_556
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有