XML-RPC-1概述
- 中文名
- XML-RPC
- 外文名
- XML Remote Procedure Call
- 属 于
- 标准通用标记语言
- 类 型
- 一个子集
目录
- 1 关于XML-RPC
- ▪ 基本介绍
- ▪ Request example
- ▪ Response example
- 2 XML-RPC入门程序
- ▪ 基本做法
- ▪ 管理器类
- ▪ 服务器类
- ▪ 客户程序
- 3 RPC和RMI的简单比较
- ▪ 调用形式
- ▪ classname.methodname的形式
- ▪ methodname
- ▪ 匹配成功后
关于XML-RPC
基本介绍
Request example
|
1
2
3
4
5
6
7
8
9
10
11
|
<?xmlversion="1.0"?><methodCall><methodName>examples.getStateName</methodName><params><param><value><i4>41</i4></value></param></params></methodCall> |
Response example
|
1
2
3
4
5
6
7
8
9
10
11
12
|
<?xmlversion="1.0"?><methodResponse><params><param><value><string>SouthDakota</string></value></param></params></methodResponse> |
XML-RPC入门程序
基本做法
管理器类
|
1
2
3
4
5
6
7
|
packagexmlRpc;/***@authortrier**<b><code>HelloHandler</code></b>isasimplehandlerthancan*beregisteredwithanXML-RPCserver*/publicclassHelloHandler{publicStringsayHello(Stringname){return"Hello"+name;}} |
服务器类
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
packagexmlRpc;/****<b><code>HelloServer</code></b>isasimpleXML-RPCserver*thatwilltakethe<code>HelloHandler</code>classavailable*forXML-PRCcalls.*<o:p*/importorg.apache.xmlrpc.WebServer;importorg.apache.xmlrpc.XmlRpc;importjava.IOException;publicclassHelloServer{publicstaticvoidmain(String[]args){if(args.length<1){System.out.println("Usage:javaHelloServer[port]");System.exit(-1);}try{XmlRpc.setDriver("org.apache.xerces.parsers.SAXParser");//starttheserverSystem.out.println("StartingXML-RPCServer......");WebServerserver=newWebServer(Integer.parseInt(args[0]));//registerourhandlerclassserver.addHandler("hello",newHelloHandler());System.out.println("Nowacceptingrequests......");}catch(ClassNotFoundExceptione){System.out.println("CouldnotlocateSAXDriver");}catch(IOExceptione){System.out.println("Couldnotstartserver:"+e.getMessage());}}} |
客户程序
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
packagexmlRpc;/****<b><code>HelloClient</code></b>isasimpleXML-RPCclient*thatmakesanXML-RPCrequestto<code>HelloServer</code>*/importjava.i.IOException;importjava.util.Vector;importorg.apache.xmlrpc.XmlRpc;importorg.apache.xmlrpc.XmlRpcClient;importjava.t.MalformedURLException;importorg.apache.xmlrpc.XmlRpcException;publicclassHelloClient{publicstaticvoidmain(String[]args){if(args.length<1){System.out.println("Usage:javaHelloClient[yourname]");System.exit(-1);}try{//UsetheApacheXerecesSAXDriverXmlRpc.setDriver("org.apache.xerces.parsers.SAXParser");//Specifytheserver//createrequestVectorparams=newVector();params.addElement(args[0]);//makearequestandprinttheresultStringresult=(String)client.execute("hello.sayHello",params);System.out.println("Responsefromserver:"+result);}catch(ClassNotFoundExceptione){System.out.println("CouldnotlocateSAXDriver");}catch(MalformedURLExceptione){System.out.println("IncorrectURLfroxml-rpcserverforamt:"+e.getMessage());}catch(XmlRpcExceptione){System.out.println("XmlRpcException:"+e.getMessage());}catch(IOExceptione){System.out.println("IOException:"+e.getMessage());}}} |
RPC和RMI的简单比较
调用形式
classname.methodname的形式
methodname
匹配成功后
XML-RPC-1概述的更多相关文章
- 什么是XML RPC?
# -*- coding: cp936 -*- #python 27 #xiaodeng #什么是XML RPC? #中文叫:远程过程调用 #使用http协议做传输协议的rpc机制,使用xml文本的方 ...
- The type javax.xml.rpc.ServiceException cannot be resolved.It is indirectly
The type javax.xml.rpc.ServiceException cannot be resolved.It is indirectly 博客分类: 解决方案_Java 问题描述:T ...
- 【PHP XML与dtd概述【完整版】】
一.XML文件简介 关于XML的大多数人都知道一些,HTML->xhtml->xml,这个顺序本来应当是HTML发展的顺序. XML可以当做配置文件使用,还可以充当小型的数据库. vers ...
- 关于XML的DTD概述
1 DTD概述 1.1 什么是DTD DTD(Document Type Definition),文档类型定义,用来约束XML文档.或者可以把DTD理解为创建XML文档的结构!例如可以用DTD要求XM ...
- xml rpc SimpleXMLRPCServer [python]
SimpleXMLRPCServe 其实里面xml的概念不是很强,主要是rpc !不用关心什么xml . rpc 是就是远程调用,把函数什么的放到远程服务器上,本地调用就行了.用 SimpleXMLR ...
- [03] mapper.xml的基本元素概述
1.select 我们基于这个持久层接口 GirlDao: public interface GirlDao { List<Girl> findByAge(int age); Girl f ...
- alluxio源码解析-rpc调用概述(1)
alluxio中几种角色以及角色之间的rpc调用: 作为分布式架构的文件缓存系统,rpc调用必不可少 client作为客户端 master提供thrift rpc的服务,管理以下信息: block信息 ...
- xml的解析(概述)
使用java解析xml☆☆☆ 四个类:分别是针对dom和sax解析使用的类 -dom : DocumentBuilder:解析器类 -这个类是个抽象类,不能new, ...
- Android之布局androidmanifest.xml 资源清单 概述
转载:https://www.cnblogs.com/wytings/p/4083463.html AndroidManifest.xml配置文件对于Android应用开发来说是比较细但又很重要的基础 ...
- supervisord支持扩展(xml RPC API & Third Party Applications and Libraries)
XML-RPC API Documentation http://www.supervisord.org/api.html Third Party Applications and Libraries ...
随机推荐
- 放射渐变RadialGradient
public RadialGradient(float centerX, float centerY, float radius, int[] colors, float[] stops, TileM ...
- Facebook libra开发者文档- 1 -welcome
参考https://developers.libra.org/docs/welcome-to-libra 欢迎来到Libra开发者网站!Libra的使命是建立一个简单的全球货币和金融基础设施,为数十亿 ...
- ASP程序中调用Now()总显示“上午”和“下午”,如何解决?
ASP程序中调用Now()总显示这样的格式:“2007-4-20 下午 06:06:38”,我要的正确格式为“2007-4-20 18:06:38”,我已经通过控制面板==>区域和语言选项==& ...
- Java 8 Lambda表达式学习和理解
Java 8 Lambda表达式和理解 说明:部分资料来源于网络 时间:20190704 Lambda 表达式,也可称为闭包,它是推动 Java 8 发布的最重要新特性.Lambda 允许把函数作为一 ...
- QML使用moveToThread线程【QML工程使用C++】
一.需求来源 对于使用Qt线程,有两种方式,见本人其他文章:https://www.cnblogs.com/judes/p/6884964.html 个人认为QObject::moveToThread ...
- npm教程、脚手架
使用之前,我们先来掌握3个东西是用来干什么的. npm: Nodejs下的包管理器. webpack: 它主要的用途是通过CommonJS的语法把所有浏览器端需要发布的静态资源做相应的准备,比如资源的 ...
- iOS-25个小技巧
(一)关于UITableView 方法flashScrollIndicators:这个很有用,闪一下滚动条,暗示是否有可滚动的内容.可以在ViewDidAppear或[table reload]之后 ...
- 心の壁 From EOE:Air / 真心为你
https://www.bilibili.com/bangumi/media/md10272/ 真嗣:我问你. 凌波:什么? 真嗣:梦到底是什么呢? 凌波:梦? 真嗣:我不太明白什么是现实. 凌波:你 ...
- 乐字节Java反射之三:方法、数组、类加载器和类的生命周期
本文承接上一篇:乐字节Java发射之二:实例化对象.接口与父类.修饰符和属性 继续讲述Java反射之三:方法.数组.类加载器 一.方法 获取所有方法(包括父类或接口),使用Method即可. publ ...
- Java程序的编写与执行、Java新手常见问题及解决方法|乐字节Java学习
今天,我们来写一段Java程序.然后看看Java程序是如何执行的,以及Java新手小白遇到的问题和解决办法. 一.HelloWorld的编写 ① 新建一个XXX.java (文件的扩展名显示出来) ...