RPC简介:XML-RPC 是工作在 Internet 上的远程过程调用协议。通俗点讲,就是使用 HTTP 协议交互,交互的载体是 XML 文件。XML-RPC 具体的规范说 明请参考这里。
先定义一个类:
package com.mypack;
public class MyHandler {
public String sayHello(String str) {
return "Hello:" + str;
}
}
服务端代码
package com.mypack;
import java.io.IOException;
import java.io.OutputStream;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.xmlrpc.XmlRpcServer;
public class Server2 extends HttpServlet {
private static final long serialVersionUID = 1013254398107043623L;
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
XmlRpcServer xmlrpc = new XmlRpcServer();
xmlrpc.addHandler("myHandler", new MyHandler());
byte[] result = xmlrpc.execute(request.getInputStream());
response.setContentType("text/xml");
response.setContentLength(result.length);
OutputStream out = response.getOutputStream();
out.write(result);
out.flush();
}
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
doPost(request, response);
}
}
XML 配置信息:
<servlet>
<servlet-name>XmlRpcServer</servlet-name>
<servlet-class>com.mypack.Server2</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>XmlRpcServer</servlet-name>
<url-pattern>/xmlrpc/XmlRpcServer</url-pattern>
</servlet-mapping>
客户端代码:
package com.mypack;
import java.io.IOException;
import java.net.MalformedURLException;
import java.util.Vector;
import org.apache.xmlrpc.XmlRpcClient;
import org.apache.xmlrpc.XmlRpcException;
public class Client2 {
public static void main(String[] args) {
try {
XmlRpcClient xmlrpc = new XmlRpcClient(
"http://127.0.0.1:8080/xmlrpc-server/xmlrpc/XmlRpcServer");
Vector<String> params = new Vector<String>();
params.add("liudong");
String result = (String) xmlrpc.execute("myHandler.sayHello",
params);
System.out.println(result);
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (XmlRpcException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
XMLRPC(XML Remote Procedure Call)是一种基于HTTP协议的远程调用技术...以上就是关于XMLRPC的基本介绍,包括其工作原理、优势和实际应用场景。通过理解XMLRPC,我们可以更有效地在分布式系统中构建和整合各种服务。
- **创建**: 可以通过静态方法 `xmlrpc_encode()` 创建一个新的 `xmlrpcval` 对象。 - **方法**: - `set_value()`: 设置值。 - `get_value()`: 获取当前存储的值。 - **xmlrpcmsg**: - **简介**: 代表 XML-RPC ...
1. **XML-RPC介绍**: - XML-RPC使用XML作为数据交换格式,可以轻松地在各种编程语言之间传递复杂的数据结构。 - 它提供了一种简单、轻量级的方法来进行跨平台的远程调用,简化了网络应用之间的通信。 2. **...
以下将详细介绍J2ME中的XML-RPC技术及其应用。 1. **J2ME XML-RPC库** 在J2ME平台上,为了实现XML-RPC通信,需要引入特定的库。例如,开源项目“j2me-xmlrpc”就是专门为J2ME提供的一个XML-RPC客户端实现,它简化...
在博客《记录Android调用Python接口》中,作者可能详细介绍了如何在Android应用中设置XML-RPC客户端,如何在Python服务器上创建XML-RPC服务,以及如何进行实际的接口调用和数据交换。这包括了Android的网络权限配置...
XmlRpc+Spring+Hibernate系统是一种基于Java的分布式应用程序开发架构,它将三种强大的技术整合在一起,以实现高效、灵活和可扩展的后端服务。在这个系统中,XML-RPC(远程过程调用)用于跨网络通信,Spring框架提供...
二、Atlassian XML-RPC Binder介绍 Atlassian XML-RPC Binder是Atlassian公司为了方便其产品(如Jira、Confluence等)与XML-RPC服务进行集成而开发的一个组件。该库提供了便捷的API,使得开发者可以快速创建XML-RPC...
wx_odoo_xmlrpc项目介绍本库是微信小程序对接odoo服务器,使用的是xmlrpc通信方式使用说明把libs/wx_odoo_xmlrpc拷到你对应的小程序libs目录下import { Odoo } from '/libs/wx_odoo_xmlrpc/odoo-xmlrpc';配置var ...
快速介绍这是一个示例有效负载以及滥用 pfSense 的 xmlrpc.php 函数来建立后门并获得对 pfSense 防火墙的根级访问权限的示例。 这个漏洞是post-auth的(对于管理员账户),根据pfSense安全团队的说法,它被认为不是...
#### 二、Apache XML-RPC 特性介绍 Apache XML-RPC 是一个基于Java的开源XML-RPC服务器和客户端库。它提供了强大的功能,支持多种数据类型,并能够轻松集成到现有的Java应用程序中。 ##### 1. 数据类型支持 ...
本文详细介绍了如何使用PHP结合XML-RPC技术构建Web Service,包括安装配置xmlrpc扩展、XML-RPC的工作原理以及具体的实践示例。通过这些内容的学习,开发者可以更好地理解和掌握如何利用PHP构建高效、稳定的Web ...
本文介绍了一种面向嵌入式系统的XML-RPC的C语言实现方案。通过对嵌入式系统特点的深入分析,结合XML-RPC的特性,设计出了一套既满足功能性又考虑资源限制的实现框架。该框架不仅解决了嵌入式系统在远程服务调用方面...
《Android WordPress应用博客平台——深入理解XMLRPC调用与安卓源码解析》 在移动互联网时代,内容创作和管理平台的便捷性变得至关重要。WordPress作为全球最受欢迎的博客和网站构建平台,其Android应用自然备受...
介绍API。发行说明1.2.1(2019-07-24) 删除构造函数中的调用,因为在某些情况下它似乎失败( )。1.2.0(2019-06-25) 支持HTTPS基于cookie的身份验证。 1.1.0(2018-03-22) 支持通过cookie进行身份验证(感谢...
首先,我们来看《Nessus_5.0_and_Antivirus》这份文档,它可能详细介绍了Nessus 5.0版本如何与反病毒软件协同工作。在Nessus 5.0中,增强的反病毒扫描功能是其重要特性之一。这个版本可能支持集成各种反病毒引擎,...
在博文《实战WebService I: XML-RPC篇(基于php)》中,作者通过具体的代码示例,详细介绍了如何在PHP环境中搭建和使用XML-RPC服务。文章可能涵盖了创建XML-RPC服务器、定义可调用的方法、创建XML-RPC客户端以及如何...
这部分着重介绍了两种常见且有效的攻击手段:水坑攻击和利用PHPStudy后门。 ##### 1. 水坑攻击 **定义**:水坑攻击是一种针对特定群体用户的攻击方法。攻击者通过分析目标群体的上网行为,找到他们常访问的网站,...
...本文将详细介绍如何解决此类问题,并确保PHP中的mbstring与exif扩展可以正常工作。 #### 错误示例与分析 根据提供的部分代码片段,我们可以看到错误信息如下: ```plaintext ...2. **路径问题**:错误消息中提到的...
本文将详细介绍如何使用Python的XML库实现RPC通信。 首先,服务器端的实现依赖于Python的`SimpleXMLRPCServer`模块。这个模块提供了一个简单的XML-RPC服务器实现,可以注册函数以便远程调用。在服务器端代码中: 1...