xml-rpc 2.0介绍:
1、运行在不同操作系统、不同环境
2、使用http作为传输协议
3、xml作为传送信息的编码格式
xml-rpc是一种简单的,轻量级的通过HTTP协议进行RPC通信的规范。一个xml-rpc消息就是一个请求
体为xml的HTTP-POST请求,被调用的方法在服务器端执行并将执行结果以xml格式编码后返回。
xml-rpc 2.0实例:
服务端类
public class MyXmlRpcServer extends HttpServlet {
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
XmlRpcServer xmlRpc=new XmlRpcServer();
xmlRpc.addHandler("myHandler", new MyHandler());
byte [] result=xmlRpc.execute(req.getInputStream());
resp.setContentType("text/xml");
resp.setContentLength(result.length);
OutputStream outputStream=resp.getOutputStream();
outputStream.write(result);
outputStream.flush();
outputStream.close();
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
doGet(req, resp);
}
}
配置
<servlet>
<servlet-name>MyXmlRpcServer</servlet-name>
<servlet-class>xiu.rpc.MyXmlRpcServer</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>MyXmlRpcServer</servlet-name>
<url-pattern>/MyXmlRpcServer</url-pattern>
</servlet-mapping>
测试
public class MyXmlRpcClient {
/**
* @param args
*/
public static void main(String[] args) {
try {
XmlRpcClient xmlrpc = new XmlRpcClient("http://127.0.0.1:8080/rpc/MyXmlRpcServer");
Vector params = new Vector();
params.addElement("Tom");
String result = (String) xmlrpc.execute("myHandler.sayHello",params);
System.out.println(result);
} catch (MalformedURLException e) {
System.out.println(e.toString());
} catch (XmlRpcException e) {
System.out.println(e.toString());
} catch (IOException e) {
e.printStackTrace();
}
}
}
rpc 3.0 写servlet
实例:
public class HelloHandler {
public String sayHello(String str){
return str;
}
}
服务:
public class Server extends HttpServlet {
private XmlRpcServletServer xmlRpc;
public void init(ServletConfig config)throws ServletException{
super.init(config);
xmlRpc=new XmlRpcServletServer();
PropertyHandlerMapping phm=new PropertyHandlerMapping();
try {
phm.addHandler("HelloHandler", xiu.com.HelloHandler.class);
xmlRpc.setHandlerMapping(phm);
XmlRpcServerConfigImpl serverConfig=(XmlRpcServerConfigImpl)xmlRpc.getConfig();
serverConfig.setEnabledForExtensions(true);
serverConfig.setContentLengthOptional(false);
} catch (XmlRpcException e) {
e.printStackTrace();
}
}
protected void doPost(HttpServletRequest req, HttpServletResponse resp)
throws ServletException, IOException {
xmlRpc.execute(req, resp);
}
}
测试:
public class xmlRpcClient {
/**
* @param args
*/
public static void main(String[] args) {
XmlRpcClientConfigImpl config=new XmlRpcClientConfigImpl();
try {
config.setServerURL(new URL("http://127.0.0.1:8080/rpc3/xmlrpc"));
XmlRpcClient client=new XmlRpcClient();
client.setConfig(config);
Vector<String> param=new Vector<String>();
param.add("tom");
String result=(String) client.execute("HelloHandler.sayHello", param);
System.out.println("result:"+result);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (XmlRpcException e) {
e.printStackTrace();
}
}
}
<servlet>
<servlet-name>XmlRpcServer</servlet-name>
<servlet-class>xiu.rpc.Server</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>XmlRpcServer</servlet-name>
<url-pattern>/sayHello</url-pattern>
</servlet-mapping>
rpc 3.0 不写servlet,用属性文件来配置javabean
1、创建javabean
2、配置javabean
3、client调用
rpc 3.0 通过属性文件来配置服务,还是很方便的
分享到:
相关推荐
`xml-rpc.net.3.0` 是一个针对C#开发的XML-RPC客户端和服务器库,版本号为3.0.0.270-snapshot。这个库提供了在.NET环境中实现XML-RPC通信所需的功能。 在C#中使用XML-RPC.net库,首先需要了解以下几个关键概念: 1...
总的来说,这个压缩包提供了Python实现的XML-RPC服务器和客户端的实例,涵盖了从创建服务器、定义可供调用的函数,到客户端如何发起请求、接收并处理响应的完整流程。这是一份很好的学习资料,对于理解XML-RPC工作...
Apache XML-RPC 是一个基于Java的开源XML-RPC服务器和客户端库。它提供了强大的功能,支持多种数据类型,并能够轻松集成到现有的Java应用程序中。 ##### 1. 数据类型支持 Apache XML-RPC 支持以下几种基本的数据...
简单介绍了XML-RPC这种通过HTTP协议进行RPC通信的规范。 以Apache XML-RPC 3.0为基础,对XML-RPC的基本原理及Apache XML-RPC 3.0的主要特性进行了讨论和分析
Apache XML-RPC(XML Remote Procedure Call)是一种基于HTTP协议的RPC(远程过程调用)技术,...同时,可以结合提供的“xmlrpc”压缩包文件中的示例代码进行学习和实践,进一步提升对Apache XML-RPC的理解和使用能力。
son-rpc是基于json的跨语言远程调用协议,比xml-rpc、webservice等基于文本的协议传输数据格小;相对hessian、java-rpc等二进制协议便于调试、实现、扩展,是非常优秀的一种远程调用协议
2. **客户端**:在客户端,使用XML-RPC客户端API(如`org.apache.xmlrpc.client.XmlRpcClient`)创建一个客户端实例,配置服务器的URL,然后就可以调用服务器端注册的方法。 3. **数据交换**:XML-RPC使用XML格式来...
XML-RPC客户端测试程序 向XMLRPC服务器发送一个XML-RPC请求,以文本文件读取xml文件; 记录返回的数据到文件中; windows命令行程序,使用前请配置*.pln文件 askcyg@hotmail.com
在Java中,Apache提供了一个名为XML-RPC的库,使得开发人员能够轻松地实现XML-RPC客户端和服务端的功能。这个库的特点是轻量级、易于使用,适合构建分布式系统中的简单通信。 标题"Java的XML-RPC函数库源代码"表明...
列举了一些公共可用的XML-RPC服务实例,供开发者参考。 ##### 6.3 设计考虑 讨论了设计XML-RPC应用时需要注意的关键因素。 ##### 6.4 超越XML-RPC 展望了XML-RPC之外的其他Web服务技术及其发展方向。 ##### 6.5...
在这个实例中,我们将探讨如何使用XML-RPC实现Java与Delphi之间的互相调用,以及提供的源码和可执行文件的用途。 1. **XML-RPC 简介**: XML-RPC基于HTTP协议,使用XML作为数据交换格式。它定义了一种标准的方法,...
"基于XML-RPC和PHP5的WEB服务的研究与实现" 本文研究了基于XML-RPC和PHP5的WEB服务的原理和实现技术。XML-RPC是一种远程过程调用(RPC)协议,它允许不同的Web服务之间进行交互。PHP5是一种流行的 сервер-...
虽然XML-RPC和SOAP都是基于XML的远程调用协议,但SOAP通常更为复杂,支持更丰富的数据类型和操作。 6. **XML-RPC库**:为了在VB6中使用XML-RPC,开发者可能需要引入第三方库,如Apache Axis或Microsoft的.NET ...
【XML-RPC 实现C++和C#交互】 XML-RPC(XML Remote Procedure Call)是一种简单、跨平台的远程过程调用协议,它利用HTTP作为传输协议,XML作为数据编码方式,使得不同编程语言编写的程序能够进行通信。在本文中,...
本示例是关于如何在Delphi环境中通过XML-RPC与Java JSP应用程序进行数据交互的实例。下面将详细介绍这个主题。 1. **XML-RPC基本概念** - XML-RPC使用HTTP作为传输协议,XML作为数据格式,实现了简单且灵活的远程...
JAX-WS 2.0是JAX-WS的第二个主要版本,它在JAX-RPC(Java API for XML-based RPC)的基础上进行了改进,引入了许多新特性以提升开发者的体验和效率。 **JAX-WS 2.0 的核心概念:** 1. **服务端点接口(SEI, ...
而`hibernate-configuration-3.0.dtd`和`hibernate-mapping-3.0.dtd`是Hibernate 3.0版本中的两个核心文件,它们定义了Hibernate配置文件和映射文件的语法规则,是理解Hibernate工作原理的关键所在。 首先,我们来...
- **EJB 2.0**:需要为每个实体Bean定义一个Home接口,用于创建和查找Bean实例。 - **EJB 3.0**:取消了Home接口的需求,简化了实体Bean的创建和查找过程。 #### 五、其他变化 - **EJB 3.0**:提供了轻量级的支持,...
Version 2.4.0 has been released: xml-rpc.net.2.4.0.zip New feature and fixed issues: New StructParams property on XmlRpcMethodAttribute which provides supports for APIs which use a struct to ...
总之,通过学习和使用这个Android XML-RPC博客客户端源码,开发者不仅可以掌握XML-RPC通信技术,还能了解到Android应用的网络编程、数据解析、界面设计等多个方面,为今后的Android开发积累宝贵经验。