xml rpc java_XML-RPC实例(Java)

在本节中,将通过Java编程语言演示如何使用XML-RPC,首先创建一个使用Java类来充当处理XML-RPC消息的服务器,然后再创建一个Java客户端来调用服务器上的过程(函数或方法)。

Java端使用Apache XML Project的Apache XML-RPC,可从 获得。

将所有.jar文件放在适当的路径(如:构建路径)中,然后使用JAVA创建一个客户端和一个小型XML-RPC服务器。

1. XML-RPC客户端

下面编写一个XML-RPC客户端来调用一个名称为:sum的函数。 此函数接受两个参数并返回它们的总和。

import java.util.*; import org.apache.xmlrpc.*; public class JavaClient { public static void main (String [] args) { try { XmlRpcClient client = new XmlRpcClient("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("JavaClient: " + exception); } } }

看看上面的示例客户端发生是如何执行的,

Java包org.apache.xmlrpc包含XML-RPC Java客户端和XML-RPC服务器的类,例如XmlRpcClient。

包类java.util是导入Vector类所必需的。

这里sample表示在服务器中定义的处理程序。

注意,过程调用的所有参数始终在Vector中。

通过指定服务器计算机的“Web地址”,然后指定/RPC2来构造XmlRpcClient类。

localhost – 是指在本地机器

可以指定IP号而不是localhost,例如:194.80.215.219

也可以指定一个域名:yiibai.com

可以将端口号与域名一起指定为yiibai.com:8080,默认端口为:80

请注意,远程过程调用的结果始终是对象,所以必须将它转换为适当的类型。

当出现问题(没有连接等)时,抛出异常并且必须使用catch语句捕获它。

由于上述调用,客户端将以下消息发送到服务器。 请注意,这是由server.execute(...)在内部处理的,所以我们不需要做什么。

请求的内容和格式如下 –

<?xml version="1.0" encoding="ISO-8859-1"?> sample.sum1713

2. XML-RPC服务器

以下是用Java编写的XML-RPC服务器的源代码。 它使用了org.apache.xmlrpc.*中提供的内置类。

import org.apache.xmlrpc.*; public class JavaServer { public Integer sum(int x, int y){ return new Integer(x+y); } public 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服务实现的WebServer类。

远程调用的方法:sum是作为类中的公共方法实现的。

然后,同一服务器类的实例与客户端可访问的处理程序相关联。

服务器由端口号初始化(默认端口号:80)。

出现问题时,抛出异常并且必须使用catch语句捕获。

对于给定示例客户端中的远程方法调用,服务器将以下响应发送回客户端:

<?xml version="1.0" encoding="ISO-8859-1"?> 30

现在服务器程序已准备好,因此提示符下编译并运行它,如下所示:

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

接下来测试客户端的调用结果,请按如下方式调用此服务器:

C:workspxmlrpcjava>java JavaClient 30

¥ 我要打赏 纠错/补充 收藏

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值