- 浏览: 79015 次
文章分类
最新评论
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 486public static void sendMessag ... -
利用快速排序算法快速的取出前一千条数据
2013-08-06 15:49 535实现代码如下:原理是利用了快速排序‘分治’思想,判断左边区域 ... -
java的JNI本地调用代码
2013-06-21 11:56 474Jni中C++和Java的参数传递 如何使用JNI的一些基 ... -
如何解决在window下高并发TCP请求端口被占用问题
2013-05-02 09:43 3089当客户端启动到服务器的 TCP/IP 套接字连接时,客户端通 ... -
Maven的简单使用
2013-04-26 11:44 714----------------准备工作---------- ... -
js 压缩工具使用
2013-04-19 11:40 733//测试代码 compiler("F:\\com ... -
解决加载相同的类
2013-04-19 09:38 627URLClassLoader classLoader1 = ... -
将长url转化为短url
2013-02-21 18:05 711public class ShortAddressUtil ... -
如何判断上传的图片是否是正真的图片 防止上传恶意的非图片文件
2013-02-19 17:03 1016final String JPG = "ffd ... -
ChartDirect使用<制作统计图的组件>
2012-11-30 11:39 1542//创建一个由X,Y轴 ... -
获取字符拼音首字母
2012-10-08 13:41 782/** * @date 2010-1-22 * @bu ... -
jetty嵌入式采用xml配置
2012-09-24 09:40 1029Server server = new Server(); ... -
生成验证码图片
2012-08-29 17:29 926Java生成验证码 为了防止用户恶意,或者使用软 ... -
WebService分布式应用实现
2012-08-28 17:30 1166WebService 是一种跨语言的系统间交互标准,对外提供功 ... -
利用MulticastSocket发送广播信息
2012-08-24 11:35 809多播组通过 D 类 IP 地址和标准 UDP 端口号指定。D ... -
插件类的一种加载形式URLClassLoader
2012-08-22 10:11 791URL url = new URL("file ... -
部署RMI应用(服务器与RMI注册表分离方式)
2012-08-20 17:56 2152一般情况下,我们的部署RMI应用的时候是把服务器和RMI注册表 ... -
RMI远程调用
2012-08-03 17:42 771第一步:远程对象接口 WareHose.java pack ... -
使用JNDI获取DataSource对象
2012-08-03 14:24 835Tomcat的conf/context.xml在<Con ... -
获取摘要、加密、解密
2012-08-02 16:57 1228生成SHA或MD5摘要 MessageDigest sha ...
相关推荐
在这个“rpc-Remote Procedure Call源码1”的压缩包中,包含了多个示例项目,它们可以帮助我们深入理解RPC的工作原理。 1. RPC基本概念: - 远程调用:RPC使得开发者可以像调用本地函数一样调用远程服务器上的函数...
RPC,即Remote Procedure Call Protocol,远程过程调用协议,是一种在分布式系统中实现客户端与服务器端通信的技术。这种协议允许一个程序(客户端)在不理解底层网络细节的情况下,调用运行在另一台计算机(服务器...
本文将详细介绍 RPC 服务属性按钮全部都是灰色的原因和解决方案,包括手动启动“远程过程调用”服务时出现的错误信息“Could not start the Remote Procedure Call (RPC) Service. Error 1058”、使用注册表编辑器...
RPC(Remote Procedure Call)是一种进程间通信(IPC)技术,允许程序在不同的计算机上通过网络进行通信,就像调用本地函数一样调用远程系统上的函数。这种技术在分布式系统和网络编程中扮演着重要角色,简化了...
远程过程调用(RPC,Remote Procedure Call)是分布式计算领域中的一个重要概念,它允许一个程序在不理解底层网络实现的情况下,能够调用另一个网络上的程序的功能,就像它们在同一台计算机上执行一样。RPC大大简化...
RPC,即Remote Procedure Call(远程过程调用),是计算机网络编程中的一个重要概念,它允许一个程序在不理解底层网络协议的情况下,调用另一个网络上不同机器上的程序。在这个"RPC.rar"压缩包中,主要围绕C++语言在...
RPC(Remote Procedure Call,远程过程调用)是一种计算机通信协议,它允许一个程序请求另一个地址空间(通常是远程计算机上的程序)执行代码,并等待结果返回。RPC使得程序能够像调用本地函数一样调用位于远程...
RPC(Remote Procedure Call)是一种计算机通信协议,它允许程序在分布式环境中的一个系统上执行另一系统上的函数或方法,就像是本地调用一样。这个过程涉及到了客户端、服务器端和服务调用的封装,使得开发者无需...
首先,让我们深入了解一下什么是RPC(Remote Procedure Call):RPC是一种协议,使得一个程序可以在执行过程中无感知地调用另一个位于不同地址空间的程序,通常是网络上的另一台计算机上的程序。RPC简化了分布式系统...
远程过程调用(RPC,Remote Procedure Call)是一种在分布式系统中实现客户端与服务器间通信的技术。RPC使得客户端能够像调用本地函数一样调用远端服务器上的服务,大大简化了跨网络的服务交互。本主题主要关注使用...
Remote Procedure Call over DDS(DDS-RPC)是一种技术,它允许通过DDS(数据分发服务)进行远程调用,这是在分布式系统中实现组件间通信的一种方法。DDS是一种标准的中间件,专注于实时数据共享和发布订阅模型,...
服务器开发中会使用RPC(Remote Procedure Call,远程过程调用)简化进程间通信的过程。RPC能有效地封装通信过程。RPC能有效地封装通信过程,让远程的数据收发通信过程看起来就像本地的函数调用一样。 本例中,...
常见的远程过程调用中间件包括 RPC(Remote Procedure Call)和 RMI(Remote Method Invocation)。 1. RPC(Remote Procedure Call) RPC 是一种远程过程调用协议,允许不同的应用程序之间进行通信和交互。RPC ...
Java RPC(Remote Procedure Call)是一种让程序在不同的网络计算机之间调用对方方法的技术。这个例子是用纯Java编写的,不依赖任何JDK之外的第三方库,因此非常适合初学者理解和学习。RPC的核心思想是透明性,即...
远程过程调用(RPC)是一种计算通信协议,允许客户端向服务器发送请求,请求执行一个特定的过程,并获取结果,就好比是调用本地方法一样。用户不需要关心网络通信的细节,因为这些细节是抽象的。这种机制通常用于...
PHPRPC(PHP Remote Procedure Call)是一种轻量级的、基于HTTP协议的远程过程调用协议,主要用于在不同服务器之间实现跨平台、跨语言的通信。在这个特定的压缩包文件"PHPRPC远程过程调用协议(ASP).7z"中,我们可以...
PHPRPC(PHP Remote Procedure Call)是一种轻量级的、基于PHP实现的远程过程调用协议,它允许在不同的PHP应用程序之间进行通信和数据交换。远程过程调用(RPC)是一种计算机程序设计技术,使得一个程序可以调用另一...
RPC(Remote Procedure Call)远程过程调用是一种计算机通信协议,允许一个程序在某处执行,通过网络调用另一台计算机上的程序,就像它是一个本地函数一样。这种技术在分布式系统和微服务架构中广泛使用,简化了不同...
远程过程调用(RPC, Remote Procedure Call)是一种通信协议,它允许在一台计算机上的程序调用另一台计算机上的子程序或函数,而无需程序员明确了解底层通信网络细节。通过RPC机制将本地调用转换为远程调用的能力极...