English 中文(简体)
XML-RPC - Examples
  • 时间:2024-11-05

XML-RPC - Examples


Previous Page Next Page  

为了展示XML-RPC,我们再造一个服务器,利用Java处理XML-RPC的信息,我们将设立一个Java客户,向该服务器打电话。

谈话的Java部分使用了Patricia XML项目,可在查阅。

将所有杰尔案卷放在适当的轨道上,让我们利用JAVA创建一个客户和一个小型XML-RPC服务器。

XML-RPC Cpent

让我们写一个XML-RPC客户,称为sum功能。 这项职能有两个参数,并收回其数额。

import java.util.*;
import org.apache.xmlrpc.*;

pubpc class JavaCpent {
   pubpc static void main (String [] args) {
   
      try {
         XmlRpcCpent cpent = new XmlRpcCpent("http://localhost/RPC2"); 
         Vector params = new Vector();
         
         params.addElement(new Integer(17));
         params.addElement(new Integer(13));

         Object result = server.execute("sample.sum", params);

         int sum = ((Integer) result).intValue();
         System.out.println("The sum is: "+ sum);

      } catch (Exception exception) {
         System.err.println("JavaCpent: " + exception);
      }
   }
}

让我们看看上述客户的情况。

    贾瓦一揽子计划(org.apache.xmlrpc)包括XML-RPC Java客户和XML-RPC服务器,例如XmlRpcCpent。

    这套措施对于Verctor阶层是必要的。

    server.execute(......)> 向服务器发送了请求书。 程序金额(17,13)按当地程序要求向服务器收取。 程序要求的收益价值始终是目的。

    在此,“组合”是指服务器中定义的一台手压器。

    请注意,所呼吁程序的所有参数总是由一位医生收集。

    XmlRpcCpent级的构造是具体说明服务器机的“网络地址”,然后是RPC2。

      当地托管——当地机器

      你们可以具体说明一个IP编号,而不是当地东道方,例如194.80.215.219

      您可具体说明一个域名,如Xyz.dyndns.org。

      你可以具体说明港口号以及域名,如xyz.dyndns.org:80。 停泊港为80个。

    请注意,远距离程序要求的结果总是是一个目标,必须归入适当的类别。

    当出现问题(无关联性等)时,就投下了一种例外,必须使用<一> 副渔获物/说明加以捕获。

由于上述电话,客户向服务器发出以下信息。 请注意,这项工作由server.execute(......)内部处理,你对此无所作为。

<?xml version="1.0" encoding="ISO-8859-1"?>
<methodCall>
   <methodName>sample.sum</methodName>
   <params>
      <param>
         <value><int>17</int></value>
      </param>
		 
      <param>
         <value><int>13</int></value>
      </param>
   </params>
</methodCall>

XML-RPC Server

以下是在 Java撰写的XML-RPC服务器来源代码。 它利用了org.apache.xmlrpc.*上的建筑课程。

import org.apache.xmlrpc.*;

pubpc class JavaServer { 

   pubpc Integer sum(int x, int y){
      return new Integer(x+y);
   }

   pubpc static void main (String [] args){
   
      try {

         System.out.println("Attempting to start XML-RPC Server...");
         
         WebServer server = new WebServer(80);
         server.addHandler("sample", new JavaServer());
         server.start();
         
         System.out.println("Started successfully.");
         System.out.println("Accepting requests. (Halt program to stop.)");
         
      } catch (Exception exception){
         System.err.println("JavaServer: " + exception);
      }
   }
}

让我们看一下我们在上述榜样服务器中所做的工作。

    一揽子计划(org.apache.xmlrpc)载有执行XML-RPC服务器的级网络Server。

    称为遥远的“程序”(sum)在课堂上作为公共方法实施。

    同一服务器类别的一个实例与一个用户可以使用的手稿有关。

    该服务器是按港口号码(如:80)启用的。

    当出现问题时,便会提出例外,并且必须使用 >pver/i>声明加以捕获。

对于上述客户,服务器向客户发出以下回复:

<?xml version="1.0" encoding="ISO-8859-1"?>
<methodResponse>
   <params>
      <param>
         <value><int>30</int></value>
      </param>
   </params>
</methodResponse>

现在,您的服务器已经就绪,因此可以迅速汇编和操作,具体如下:

C:oraxmlrpcjava>java JavaServer
Attempting to start XML-RPC Server...
Started successfully.
Accepting requests. (Halt program to stop.)

现在测试这一功能,向该服务器发出如下呼吁:

C:oraxmlrpcjava>java JavaCpent
30
Advertisements