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对象提供。
分享到:
相关推荐
基于Chris Morley出色的著作“ XmlRpc ++”派生的XmlRpc库。 / *由ise GmbH 2013更改* /-添加了多线程支持-添加了对Windows编译的支持-扩展类XmlRpcValue用于某些定义的输入格式的自动类型识别-添加了二进制协议以...
XML-RPC客户端测试程序 向XMLRPC服务器发送一个XML-RPC请求,以文本文件读取xml文件; 记录返回的数据到文件中; windows命令行程序,使用前请配置*.pln文件 askcyg@hotmail.com
具有代理和超时支持的 Python xmlrpc 客户端库。 安装 $ pip install xmlrpclibex 或者 $ python setup.py install 用法 一个基本的例子 from xmlrpclibex import xmlrpclibex sp = xmlrpclibex . ServerProxy ( ...
Trackmania 专用服务器 xmlrpc 客户端,用于使用 await/async 接口的 nodejs。 需要 npm install @evotm/gbxclient --save 例子 import { GbxClient } from "@evotm/gbxclient" ; async function main ( ) { let ...
上次我求一个xrpc的完整例子没有找到。现在从我自己做了一个,如果有使用ws、xmlrpc来做系统接口的同学,可以参考下
em-xmlrpc- 这个宝石猴子将Ruby内置的XMLRPC :: Client补丁为EventMachine + Fiber感知。 如果您未使用EventMachine(或React器未在运行),则它将回退到使用XMLRPC :: Client的默认实现(使用Net :: HTTP)。 ...
当初到处找XMLRPC的例子,jar包,和教程很难,现在我自己把这些东西都整理了一下,希望对各位有帮助。里面还有具体的例子。
NULL 博文链接:https://fanrey.iteye.com/blog/1453681
xmlrpc demo。包含服务端和客户端。入门的好例子。
什么是 XMLRPC? aXMLRPC 是一个带有轻量级 XML-RPC 客户端的 Java 库。 XML-RPC 是一种规范,用于以 XML 格式通过 HTTP 协议进行远程过程调用。 该规范可以在下。 该库是为与 Android 一起使用而开发的。 由于它...
xmlrpc-2.0-src.zip java程序,主要用语开发rpc
xmlrpc远程函数式服务调用,C++作为服务端,python、C++客户端通过http进行调用,远程调用函数式服务,具体运行结果可以参考https://blog.csdn.net/zckui/article/details/121147756 博客
xmlrpc jar包. 版本: 3.1.3
xmlrpc-c-1.51.05.tgz,xmlrpc的c和c++官方发布版本,xmlrpc用于嵌入式API调试,配合python客户端,非常方便。
xmlrpc库
xmlrpc简单示例,详细介绍xmlrpc
xmlrpc.jar文件,Java调用xmlrpc时需要此jar包
Ruby标准库软件包“ xmlrpc”使您可以创建实现远程过程的服务器以及调用远程过程的客户端。 只需很少的代码即可实现以上任何一个。 安装 将此行添加到您的应用程序的Gemfile中: gem 'xmlrpc' 然后执行: $ ...
php XmlRPC 官方文档 里面有详细的运用说明
基于python的xmlrpc示例,详细说明见https://blog.csdn.net/qq_25662827/article/details/123271255