- 浏览: 76496 次
文章分类
最新评论
Xml_Rpc是采用http协议通过xml数据格式实现rpc(远程调用过程)一个项目。项目主页:http://ws.apache.org/xmlrpc/在download页面中可以下载xml_rpc的jar包。在Documenttation中有只用说明和小例子可以简单的做参考。
下面是对一个helloworld的程序代码解释:
Rpc是一种实现远程调用过程的规范,它区别于大家熟知的最基本的本地调用。它实现了不同服务器跨域访问。狭义的讲:通过一个客户端连接到远程服务器调用服务端的对象。
首先写一个server:RpcSever.java
在sever端用到一个Handler它是一个专门被客户端调用的类,它的创建和普通的类一样,但你会发现它实现了一个接口,可能是在客户端调用服务端实例的时候采用了动态代理必须用接口否则创建代理不成功,这种实现也充分体现了安全性。在以前的版本并没有考虑到这点可能后来加上去的。
Handler:HelloHandler.java
在这里就不列出接口的代码了,很容易看出。
最后创建客户端:RpcClient.java
下面是对一个helloworld的程序代码解释:
Rpc是一种实现远程调用过程的规范,它区别于大家熟知的最基本的本地调用。它实现了不同服务器跨域访问。狭义的讲:通过一个客户端连接到远程服务器调用服务端的对象。
首先写一个server:RpcSever.java
//创建一个webServer的实例绑定在8080端口上,重载方法中第二的参数为绑定的IP地址默认为本地 WebServer webServer = new WebServer(8080); //创建以property形式的Handler映射 PropertyHandlerMapping phm = new PropertyHandlerMapping(); //添加handler phm.addHandler(DefaultHandler.class.getName(), HelloHandler.class); //启用void的方法 phm.setVoidMethodEnabled(true); //从webserver的实例中获得一个XmlRpcServer的实例 XmlRpcServer xmlRpcServer = webServer.getXmlRpcServer(); //将创建好的handler映射对象填充到xmlRpcServer的实例中 xmlRpcServer.setHandlerMapping(phm); //获取xmlrpcServer的配置对象 XmlRpcServerConfigImpl serverConfig = (XmlRpcServerConfigImpl) xmlRpcServer.getConfig(); //修改xmlrpcServer的配置对象中的属性 serverConfig.setEnabledForExtensions(true); serverConfig.setContentLengthOptional(false); //启动webServer 它其实就是一个简单web服务器,启动后会处理客户端发过来请求 webServer.start();
在sever端用到一个Handler它是一个专门被客户端调用的类,它的创建和普通的类一样,但你会发现它实现了一个接口,可能是在客户端调用服务端实例的时候采用了动态代理必须用接口否则创建代理不成功,这种实现也充分体现了安全性。在以前的版本并没有考虑到这点可能后来加上去的。
Handler:HelloHandler.java
public class HelloHandler implements DefaultHandler{ public String sayHello(String name){ System.out.println("接受到请求!"); return name+":客户你好!"; } }
在这里就不列出接口的代码了,很容易看出。
最后创建客户端:RpcClient.java
//创建XmlRpcClientConfigImpl看类名就可知道这个是用来配置XmlRpcClient参数的 XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl(); //设置要连接远程服务器 config.setServerURL(new URL("http://127.0.0.1:8080")); config.setEnabledForExtensions(true); //设置连接超时的时间 config.setConnectionTimeout(60 * 1000); config.setReplyTimeout(60 * 1000); //创建XmlRpcClient对象 XmlRpcClient client = new XmlRpcClient(); //填充XmlRpcClient的配置信息 client.setConfig(config); //通过util包中的ClientFactory类方便管理XmlRpcClient的实例 ClientFactory factory = new ClientFactory(client); //通过ClientFactory创建要远程调用对象的代理对象,用接口接收 DefaultHandler echo = (DefaultHandler) factory.newInstance(DefaultHandler.class); //调用接口暴露出的可见的方法 System.out.println(echo.sayHello("luoxun"));
发表评论
-
使用javamail组件-----邮件发送
2013-08-09 16:35 454public static void sendMessag ... -
利用快速排序算法快速的取出前一千条数据
2013-08-06 15:49 513实现代码如下:原理是利用了快速排序‘分治’思想,判断左边区域 ... -
java的JNI本地调用代码
2013-06-21 11:56 451Jni中C++和Java的参数传递 如何使用JNI的一些基 ... -
如何解决在window下高并发TCP请求端口被占用问题
2013-05-02 09:43 3024当客户端启动到服务器的 TCP/IP 套接字连接时,客户端通 ... -
Maven的简单使用
2013-04-26 11:44 682----------------准备工作---------- ... -
js 压缩工具使用
2013-04-19 11:40 701//测试代码 compiler("F:\\com ... -
解决加载相同的类
2013-04-19 09:38 601URLClassLoader classLoader1 = ... -
将长url转化为短url
2013-02-21 18:05 680public class ShortAddressUtil ... -
如何判断上传的图片是否是正真的图片 防止上传恶意的非图片文件
2013-02-19 17:03 986final String JPG = "ffd ... -
ChartDirect使用<制作统计图的组件>
2012-11-30 11:39 1519//创建一个由X,Y轴 ... -
获取字符拼音首字母
2012-10-08 13:41 754/** * @date 2010-1-22 * @bu ... -
jetty嵌入式采用xml配置
2012-09-24 09:40 999Server server = new Server(); ... -
生成验证码图片
2012-08-29 17:29 891Java生成验证码 为了防止用户恶意,或者使用软 ... -
WebService分布式应用实现
2012-08-28 17:30 1102WebService 是一种跨语言的系统间交互标准,对外提供功 ... -
利用MulticastSocket发送广播信息
2012-08-24 11:35 781多播组通过 D 类 IP 地址和标准 UDP 端口号指定。D ... -
插件类的一种加载形式URLClassLoader
2012-08-22 10:11 761URL url = new URL("file ... -
部署RMI应用(服务器与RMI注册表分离方式)
2012-08-20 17:56 2124一般情况下,我们的部署RMI应用的时候是把服务器和RMI注册表 ... -
RMI远程调用
2012-08-03 17:42 750第一步:远程对象接口 WareHose.java pack ... -
使用JNDI获取DataSource对象
2012-08-03 14:24 804Tomcat的conf/context.xml在<Con ... -
获取摘要、加密、解密
2012-08-02 16:57 1189生成SHA或MD5摘要 MessageDigest sha ...
相关推荐
RPC(Remote Procedure Call Protocol)——远程过程调用协议
远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。
rpc即Remote Procedure Calls,本资源主要讲解了rpc的实现过程,它是在linux下客户端与服务器端通信的,实例主要实现了客户端输入数字,服务器端计算平均数并返回给客户端。
远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。
135端口:135端口主要用于使用RPC(Remote Procedure Call,远程过程调用)协议并提供DCOM(分布式组件对象模型)服务。 端口说明:135端口主要用于使用RPC(Remote Procedure Call,远程过程调用)协议并提供...
RPC(Remote Procedure Call,远程过程调用)是一种计算机通信协议,它允许一个程序请求另一个地址空间(通常是远程计算机上的程序)执行代码,并等待结果返回。RPC使得程序能够像调用本地函数一样调用位于远程...
服务器开发中会使用RPC(Remote Procedure Call,远程过程调用)简化进程间通信的过程。RPC能有效地封装通信过程。RPC能有效地封装通信过程,让远程的数据收发通信过程看起来就像本地的函数调用一样。 本例中,...
RPC(Remote Procedure Call Protocol)远程过程调用协议实例,学习和使用thrift无痛入门代码。具体使用方法,可以看博客详解。
Remote Procedure Call,远程过程调用。也就是说,调用过程代码并不是在调用者本地运行,而是要实现调用者与被调用者二地之间的连接与通信。比较严格的定义是:Remote procedure call (RPC) is a protocol that ...
AMFPHP是PHP的远程调用(RPC, Remote Procedure Call)工具。
端口说明:135端口主要用于使用RPC(Remote Procedure Call,远程过程调用)协议并提供DCOM(分布式组件对象模型)服务,通过RPC可以保证在一台计算机上运行的程序可以顺利地执行远程计算机上的代码;使用DCOM可以...
本文简单介绍了RPC(Remote Procedure Call 远程过程调用)的原理结构、特点,及其开放给编程人员不同层次的编程接口。并且例举实例示范如何通过Rpcgen 编译工具来快速开发RPC应用。
Remote Procedure Call (RPC)是Windows 操作系统使用的一种远程过程调用协议。RPC提供进程间交互通信机制,允许在某台计算机上运行程序的无缝地在远程系统上执行代码。Microsoft的RPC部分在通过TCP/IP处理信息交换时...
RPC(remote procedure call 远程过程调用)框架实际是提供了一套机制,使得应用程序之间可以进行通信,而且也遵从server/client模型。使用的时候客户端调用server端提供的接口就像是调用本地的函数一样。
Java RPC教程,RPC是远程过程调用(Remote Procedure Call)的缩写形式。
所谓RPC(remote procedure call 远程过程调用)框架实际是提供了一套机制,使得应用程序之间可以进行通信,而且也遵从server/client模型。使用的时候客户端调用server端提供的接口就像是调用本地的函数一样。
所谓RPC(remote procedure call 远程过程调用)框架实际是提供了一套机制,使得应用程序之间可以进行通信,而且也遵从server/client模型。使用的时候客户端调用server端提供的接口就像是调用本地的函数一样.
RPC(Remote Procedure Call )——远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在(如TCP或UDP),为通信程序之间携带信息数据。在...
RPC(Remote Procedure Call )——远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI...
详细介绍了远程过程调用的实现,并用C给出了相应实现的例子