Topic: [原創] Apache XML-RPC 教學文章+ 示範程式 |
Print this page |
1.[原創] Apache XML-RPC 教學文章+ 示範程式 | Copy to clipboard |
Posted by: tzutolin Posted on: 2004-05-10 16:17 [主题] Apache XML-RPC 示范教学 (一) [目的] 尝试创作, 分享学习经验 [下载连结] http://ws.apache.org/xmlrpc/download.html [简介] Apache XML-RPC 为一组使用 Java 所写成的 XML-RPC 套件, Apache XML-RPC 的类别分为 Client 端以及 Server 端两大部分, 它是通过两套广为使用的协定 XML 以及 HTTP 来实作远端程序呼叫. [使用教学 Client 篇] 在 Client 方面提供了两个主要的类别, 分别简述如下: 1. org.apache.xmlrpc.XmlRpcClient 此类别使用了 java.net.URLConnection 类别, 为标准的 HTTP Client. 2. org.apache.xmlrpc.XmlRpcClientLite 此类别实作了自订的轻量级 HTTP Client . Tip: 假如您需要完整的 HTTP 协议支援 (例如: 代理服务器, 重新导向...等等功能), 请使用 XmlRpcClient 类别. 反过来说, 假如您的程序并不需要完整的 HTTP 协议支援, 而又需要考虑到效能问题时, 请您尝试上述两种 Client 类别: XmlRpcClient 及 XmlRpcClientLite. 因为在某些平台上 XmlRpcClient 可能会较快些, 而在某些平台上, XmlRpcClientLite 则表现的更为出色. 此两类别提供了同样的介面, 都包含了同步以及非同步的呼叫. 因此, 使用方法上大同小异, 请使用者不必担忧. 同步的 XML 远端程序呼叫: Apache XML-RPC 在使用上非常的直观及简易. 以下唯一些示范的程序码, 各位也可以依样画葫芦.
Tip: 请各位朋友特别注意的是在当执行 execute 方法时可能会丢出 XmlRpcException 以及 IOException, 您必须再程序码中宣告当例外发生时候的处理方式. 非同步的 XML 远端程序呼叫: Apache XML-RPC 支援非同步的远端程序呼叫. 它是经由 XML-RPC Client 类别中的 eexecuteAsync() 方法来达成. 使用该方法会启动另外一个执行绪来执行该方法的呼叫, 而 executeAsync 会立即回传, 而不像 execute 方法会等待处理结果. 假如您想要知道远端的执行结果, 或是想要在例外发生时被通知, 您可以传入一个实作 org.apache.xmlrpc.AsyncCallback 介面的物件类别. 此介面定义了两个方法: public void handleResult (Object result, URL url, String method); public void handleError (Exception exception, URL url, String method); 此两方法会视远端执行的状况而个别被呼叫. [使用教学 Server 篇] 在 Server 这端, 您可以选择把函式库绑入现有的 server 框架软件, 或者使用此套件中内建的迷你 HTTP 服务器. 就让我们先来看看要如何使用 Server 端的相关类别, 并学习如何在 Server 上注册相对应的处理物件. XML-RPC Handler Objects Apache XML-RPC 套件在 Server 端也同样提供了两个类别供各位朋友使用, 分别简述如下: 1. org.apache.xmlrpc.XmlRpcServer 此类别为 Apache XML-RPC 中的标准 Server 类别, 可用于和现成的 Server 整合. 2. org.apache.xmlrpc.WebServer 此类别提供前面我提到的迷你 HTTP 服务器. 上面的两个 Server 端类别都提供下列方法以供您注册或注销当作 XML 远端成呼叫处理类别的 Java 物件. addHandler (String name, Object handler); removeHandler (String name); Tip: 视您提供给 Server 的处理类别, 将会出现在列的情形: 假如您传给 XmlRpcServer 任何的 Java 物件, 它将会通过物件的自省机制 (object introspection) 尝试着去解析所有进来的程序呼叫. 举例来说: 通过寻找在处理类别之中的公用方法, 找出相对应于呼叫里头所要求的方法名称以及参数型态. 特别注意的是在 XML 远端程序呼叫的要求中的参数型态必须符合下列规定: A. XML-RPC 资料型态: <i4> or <int> XML Parser 所产生的资料型态: java.lang.Integer Client 所预期的资料型态: int B. XML-RPC 资料型态: <boolean> XML Parser 所产生的资料型态: java.lang.Boolean Client 所预期的资料型态: boolean C. XML-RPC 资料型态: <string> XML Parser 所产生的资料型态: java.lang.String Client 所预期的资料型态: java.lang.String D. XML-RPC 资料型态: <double> XML Parser 所产生的资料型态: java.lang.Double Client 所预期的资料型态: double F. XML-RPC 资料型态: <dateTime.iso8601> XML Parser 所产生的资料型态: java.util.Date Client 所预期的资料型态: java.util.Date G. XML-RPC 资料型态: <struct> XML Parser 所产生的资料型态: java.util.Hashtable Client 所预期的资料型态: java.util.Hashtable H. XML-RPC 资料型态: <array> XML Parser 所产生的资料型态: java.util.Vector Client 所预期的资料型态: java.util.Vector G. XML-RPC 资料型态: <base64> XML Parser 所产生的资料型态: byte[ ] Client 所预期的资料型态: byte[ ] 否则呼叫将会失败. 同样地, 所回传的结果型态也必须被此 XML 远端程序呼叫套件所支援. 而若您传入实作 org.apache.xmlrpc.XmlRpcHandler 或 org.apache.xmlrpc.AuthenticatedXmlRpcHandler 介面的程序处理物件给 XmlRpcServer 时, execute() 方法将会在每次远端程序呼叫时被呼叫. 因此您能够完全的控制如何来处理 XML 远端程序呼叫要求, 也让您能够对输入和输出的参数来作检查以及转换, 以及进行错误处理...等等. 未完, 请待续篇 Best regards, tzutolin |
2.Re:[原創] Apache XML-RPC 教學文章+ 示範程式 [Re: tzutolin] | Copy to clipboard |
Posted by: tzutolin Posted on: 2004-05-10 18:09 繁體請看這裡 http://www.javaworld.com.tw/jute/post/view?bid=35&id=48227&sty=1&tpg=1&age=0 |
3.Re:[原創] Apache XML-RPC 教學文章+ 示範程式 [Re: tzutolin] | Copy to clipboard |
Posted by: Biubiu Posted on: 2004-05-11 12:50 不错,赞一个先。 |
4.Re:[原創] Apache XML-RPC 教學文章+ 示範程式 [Re: tzutolin] | Copy to clipboard |
Posted by: itren Posted on: 2004-05-17 12:44 有研究 PHP的吗? |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |