`
liudong_1985
  • 浏览: 36120 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

XMLRPC 介绍

    博客分类:
  • XML
阅读更多

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();

		}
	}
}


分享到:
评论
1 楼 gjlping 2011-06-29  
分享了,谢谢

相关推荐

    xmlrpc简单示例

    XMLRPC(XML Remote Procedure Call)是一种基于HTTP协议的远程调用技术...以上就是关于XMLRPC的基本介绍,包括其工作原理、优势和实际应用场景。通过理解XMLRPC,我们可以更有效地在分布式系统中构建和整合各种服务。

    php XmlRPC 官方文档

    - **创建**: 可以通过静态方法 `xmlrpc_encode()` 创建一个新的 `xmlrpcval` 对象。 - **方法**: - `set_value()`: 设置值。 - `get_value()`: 获取当前存储的值。 - **xmlrpcmsg**: - **简介**: 代表 XML-RPC ...

    apache-xmlrpc-current-bin.zip

    1. **XML-RPC介绍**: - XML-RPC使用XML作为数据交换格式,可以轻松地在各种编程语言之间传递复杂的数据结构。 - 它提供了一种简单、轻量级的方法来进行跨平台的远程调用,简化了网络应用之间的通信。 2. **...

    j2me-xmlrpc.rar

    以下将详细介绍J2ME中的XML-RPC技术及其应用。 1. **J2ME XML-RPC库** 在J2ME平台上,为了实现XML-RPC通信,需要引入特定的库。例如,开源项目“j2me-xmlrpc”就是专门为J2ME提供的一个XML-RPC客户端实现,它简化...

    apache-xmlrpc-3.1.3-bin.tar.gz

    在博客《记录Android调用Python接口》中,作者可能详细介绍了如何在Android应用中设置XML-RPC客户端,如何在Python服务器上创建XML-RPC服务,以及如何进行实际的接口调用和数据交换。这包括了Android的网络权限配置...

    XmlRpc+Spring+Hibernate系统(源码)

    XmlRpc+Spring+Hibernate系统是一种基于Java的分布式应用程序开发架构,它将三种强大的技术整合在一起,以实现高效、灵活和可扩展的后端服务。在这个系统中,XML-RPC(远程过程调用)用于跨网络通信,Spring框架提供...

    atlassian-xmlrpc-binder-0.9.jar.zip

    二、Atlassian XML-RPC Binder介绍 Atlassian XML-RPC Binder是Atlassian公司为了方便其产品(如Jira、Confluence等)与XML-RPC服务进行集成而开发的一个组件。该库提供了便捷的API,使得开发者可以快速创建XML-RPC...

    wx_odoo_xmlrpc

    wx_odoo_xmlrpc项目介绍本库是微信小程序对接odoo服务器,使用的是xmlrpc通信方式使用说明把libs/wx_odoo_xmlrpc拷到你对应的小程序libs目录下import { Odoo } from '/libs/wx_odoo_xmlrpc/odoo-xmlrpc';配置var ...

    pfsense_xmlrpc_backdoor:通过 xmlrpc.php 在 pfSense 防火墙上放置 PHP 后门的简单示例

    快速介绍这是一个示例有效负载以及滥用 pfSense 的 xmlrpc.php 函数来建立后门并获得对 pfSense 防火墙的根级访问权限的示例。 这个漏洞是post-auth的(对于管理员账户),根据pfSense安全团队的说法,它被认为不是...

    Apache xml-rpc入门

    #### 二、Apache XML-RPC 特性介绍 Apache XML-RPC 是一个基于Java的开源XML-RPC服务器和客户端库。它提供了强大的功能,支持多种数据类型,并能够轻松集成到现有的Java应用程序中。 ##### 1. 数据类型支持 ...

    PHP中XML-RPC构造WebService.pdf

    本文详细介绍了如何使用PHP结合XML-RPC技术构建Web Service,包括安装配置xmlrpc扩展、XML-RPC的工作原理以及具体的实践示例。通过这些内容的学习,开发者可以更好地理解和掌握如何利用PHP构建高效、稳定的Web ...

    面向嵌入式系统XML-RPC的C实现设计

    本文介绍了一种面向嵌入式系统的XML-RPC的C语言实现方案。通过对嵌入式系统特点的深入分析,结合XML-RPC的特性,设计出了一套既满足功能性又考虑资源限制的实现框架。该框架不仅解决了嵌入式系统在远程服务调用方面...

    Android WordPress应用博客平台.zip

    《Android WordPress应用博客平台——深入理解XMLRPC调用与安卓源码解析》 在移动互联网时代,内容创作和管理平台的便捷性变得至关重要。WordPress作为全球最受欢迎的博客和网站构建平台,其Android应用自然备受...

    python-dokuwiki:通过XMLRPC管理Dokuwiki

    介绍API。发行说明1.2.1(2019-07-24) 删除构造函数中的调用,因为在某些情况下它似乎失败( )。1.2.0(2019-06-25) 支持HTTPS基于cookie的身份验证。 1.1.0(2018-03-22) 支持通过cookie进行身份验证(感谢...

    nessus部分官方资料

    首先,我们来看《Nessus_5.0_and_Antivirus》这份文档,它可能详细介绍了Nessus 5.0版本如何与反病毒软件协同工作。在Nessus 5.0中,增强的反病毒扫描功能是其重要特性之一。这个版本可能支持集成各种反病毒引擎,...

    转 主题:实战WebService I: XML-PRC篇(基于php)

    在博文《实战WebService I: XML-RPC篇(基于php)》中,作者通过具体的代码示例,详细介绍了如何在PHP环境中搭建和使用XML-RPC服务。文章可能涵盖了创建XML-RPC服务器、定义可调用的方法、创建XML-RPC客户端以及如何...

    ATT&CK手册.docx

    这部分着重介绍了两种常见且有效的攻击手段:水坑攻击和利用PHPStudy后门。 ##### 1. 水坑攻击 **定义**:水坑攻击是一种针对特定群体用户的攻击方法。攻击者通过分析目标群体的上网行为,找到他们常访问的网站,...

    找不到php_mbstring.dll或php_exif.dll的解决方法

    ...本文将详细介绍如何解决此类问题,并确保PHP中的mbstring与exif扩展可以正常工作。 #### 错误示例与分析 根据提供的部分代码片段,我们可以看到错误信息如下: ```plaintext ...2. **路径问题**:错误消息中提到的...

    使用XML库的方式,实现RPC通信的方法(推荐)

    本文将详细介绍如何使用Python的XML库实现RPC通信。 首先,服务器端的实现依赖于Python的`SimpleXMLRPCServer`模块。这个模块提供了一个简单的XML-RPC服务器实现,可以注册函数以便远程调用。在服务器端代码中: 1...

Global site tag (gtag.js) - Google Analytics