XML-RPC 是一种比 SOAP 更早的、简单的轻量级 Web 服务技术,是 XML Web 服务的鼻祖。它是一个用于远程过程调用(remote procedure call,RPC)的简单规范,这种调用使用 HTTP 作为传输协议,并使用 XML 词汇表作为消息有效负载。由于 XML-RPC 非常简单(整个规范打印出来还不到十页纸)。
XML-RPC 数据类型
XML-RPC 标签 描述
< string > 字符的一个序列
< int > 有符号或无符号 32-bit 整数值
< boolean > true(1)或 false(0)
< double > 有符号双精度浮点数
< dateTime.iso8601 > 日期和时间(当没有时区)
< base64 > 一个 base64 编码的字符串
< array > 一个数据类型序列的容器
< struct > 一个关键字-值对的容器
XML-RPC之Hello World:
处理器类:
package org.sun.rpc.handler;
public class HelloHandler {
public String sayHello(String name) {
return "Hello, " + name;
}
}
Server端:
package org.sun.rpc.server;
import java.io.IOException;
import org.apache.xmlrpc.XmlRpcException;
import org.apache.xmlrpc.server.PropertyHandlerMapping;
import org.apache.xmlrpc.server.XmlRpcServer;
import org.apache.xmlrpc.server.XmlRpcServerConfigImpl;
import org.apache.xmlrpc.webserver.WebServer;
import org.sun.rpc.handler.HelloHandler;
public class HelloServer {
public static final int PORT = 8080;
public static void main(String... args) throws XmlRpcException, IOException {
System.out.println("Starting RPC Server Now ...");
WebServer webServer = new WebServer(PORT);
XmlRpcServer xmlRpcServer = webServer.getXmlRpcServer();
PropertyHandlerMapping handlerMapping = new PropertyHandlerMapping();
handlerMapping.addHandler("hello", HelloHandler.class);
xmlRpcServer.setHandlerMapping(handlerMapping);
XmlRpcServerConfigImpl serverConfig = (XmlRpcServerConfigImpl) xmlRpcServer.getConfig();
serverConfig.setEnabledForExtensions(true);
serverConfig.setContentLengthOptional(false);
webServer.start();
System.out.println("Registered HelloHandler to \"hello\"");
System.out.println("Now Accepting Requests ...");
}
}
Client端:
package org.sun.rpc.client;
import java.net.MalformedURLException;
import java.net.URL;
import org.apache.xmlrpc.XmlRpcException;
import org.apache.xmlrpc.client.XmlRpcClient;
import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;
import org.apache.xmlrpc.client.XmlRpcCommonsTransportFactory;
public class HelloClient {
public static void main(String... args) throws MalformedURLException, XmlRpcException {
XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
config.setServerURL(new URL("http://127.0.0.1:8080/"));
XmlRpcClient client = new XmlRpcClient();
client.setTransportFactory(new XmlRpcCommonsTransportFactory(client));
client.setConfig(config);
Object[] params = new Object[] { "Jacky" };
String result = (String) client.execute("hello.sayHello", params);
System.out.println("Response from server is: " + result);
}
}
代码使用apache-xmlrpc库。
底层的处理:
sayHello()方法的请求实际被转换成一个HTTP调用,服务端解析XML文件后如果有匹配的方法将相应结果编码成XML文件。
分享到:
相关推荐
JavaEE源代码 xml-apisJavaEE源代码 xml-apisJavaEE源代码 xml-apisJavaEE源代码 xml-apisJavaEE源代码 xml-apisJavaEE源代码 xml-apisJavaEE源代码 xml-apisJavaEE源代码 xml-apisJavaEE源代码 xml-apisJavaEE源...
`xml-apis-1.4.01.jar` 是一个包含XML API实现的Java库,它提供了处理XML文档所需的基本接口和类。在Java开发中,如果遇到“xml-apis-1.4.01.jar does not exist”的错误,通常意味着项目缺少了对XML解析的支持。 ...
xml-apis-2.0.2.jar 是一个专门处理XML相关操作的Java库,它是ECIDE(Enterprise Content Interaction Development Environment,企业内容交互开发环境)的依赖包之一。ECIDE可能是一个用于构建企业级应用的集成开发...
XML-Parser是处理XML文档的库,为程序提供解析和生成XML的能力。在这个场景中,"XML-Parser-2.41.tar.gz" 是一个特定版本的XML解析器,它被用作飞鸽工具安装过程中的依赖项,这意味着飞鸽工具在运行或安装时需要这个...
xml-apis-ext-1.3.04.jar
xml-apis.jar xml-apis.jar
"OPC XML-DA Sample Client" 是一个演示应用程序,用于展示如何通过XML-DA接口与OPC服务器进行交互。 这个样本客户端提供了以下关键知识点: 1. **OPC 技术**: OPC最初设计用于Microsoft Windows环境,它定义了一...
xml-apis-2.0.2.pomxml-apis-2.0.2.pomxml-apis-2.0.2.pom
spring4-mvc-gradle-xml-hello-world, Gradle + spring 4 MVC Hello World 示例( XML ) Gradle --spring-4 MVC Hello Worldspring 4 MVC + JSP视图+ XML配置模板,使用Gradle构建工具。使用的###1. 技术Gradle 2.0...
xml-resolver-1.2 xml-resolver-1.2
另一个文件“xml-commons-resolver-1.1.jar.license.txt”则包含了关于这个库的许可信息,对于遵循开源原则的项目来说,这是至关重要的,因为了解并遵守许可证条款可以避免潜在的法律问题。 在实际应用中,XML ...
离线安装包,亲测可用
为了解决这个问题,我们可以引入`xercesImpl.jar`和`xml-apis.jar`这两个Java档案库(JAR)文件。 `xercesImpl.jar`是Xerces-J的实现,它是一个高性能、完全符合XML 1.0和XML 1.1规范的解析器。Xerces-J是由Apache...
"xml-apis.jar" 是一个包含XML API实现的Java归档文件,它提供了处理XML文档所需的核心接口和类。这个JAR文件通常包含了对XML 1.0规范的支持,可能还包含了对XPath、XSLT和DOM等XML相关技术的API。 1. **XML API**:...
"xml-security-bin-1_2_1.zip" 文件是一个包含XML安全库的压缩包,版本为1.2.1。这个库可能包含了用于对XML文档进行签名、加密和验证的工具和API,旨在确保XML数据在传输过程中的完整性和安全性。 XML签名是一种...
jackson-dataformat-xml-2.9.6.jar
XML-RPC(XML Remote Procedure Call)是一种基于XML的远程过程调用协议,它允许软件应用程序通过网络进行通信,执行远程服务器上的方法,就像它们在本地机器上运行一样。`xml-rpc.net.3.0` 是一个针对C#开发的XML-...
XML-RPC客户端测试程序 向XMLRPC服务器发送一个XML-RPC请求,以文本文件读取xml文件; 记录返回的数据到文件中; windows命令行程序,使用前请配置*.pln文件 askcyg@hotmail.com
官方离线安装包,亲测可用
### XML-RPC与Web服务编程 #### 一、引言 《2001_Programming Web Services with XML-RPC》是一本关于基于XML-RPC技术进行Web服务编程的书籍。该书由Simon St. Laurent、Joe Johnston和Edd Dumbill合著,并于2001...