http://blog.csdn.net/arkblue/article/details/6237380
Spring整合RMI的原理
客户端的核心是RmiProxyFactoryBean,包含serviceURL属性和serviceInterface属性。
通过JRMP访问服务。JRMP JRMP:java remote method protocol,Java特有的,基于流的协议。
服务端暴露远程服务
RmiServiceExporter把任何Spring管理的Bean输出成一个RMI服务。通过把Bean包装在一个适配器类中工作。适配器类被绑定到RMI注册表中,并且将请求代理给服务类。
服务端程序:
1 IHelloWorld.java POJO的接口
- public interface IHelloWorld {
- public String helloWorld();
- public String sayHelloToSomeBody(String someBodyName);
- }
2 HelloWorld.java POJO的实现
- public class HelloWorld implements IHelloWorld {
- @Override
- public String helloWorld() {
- return "Hello World!";
- }
- @Override
- public String sayHelloToSomeBody(String someBodyName) {
- return "Hello World!" + someBodyName;
- }
- }
3 spring配置文件rmi_server_context.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop"
- xmlns:tx="http://www.springframework.org/schema/tx"
- xsi:schemaLocation="http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
- http://www.springframework.org/schema/aop
- http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
- http://www.springframework.org/schema/tx
- http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
- <bean id="helloWorld" class="springapp.rmi.rmi.HelloWorld" />
- <bean id="serviceExporter" class="org.springframework.remoting.rmi.RmiServiceExporter">
- <property name="service" ref="helloWorld" />
- <!-- 定义服务名 -->
- <property name="serviceName" value="hello" />
- <property name="serviceInterface" value="springapp.rmi.rmi.IHelloWorld" />
- <property name="registryPort" value="8088" />
- </bean>
- </beans>
4 服务端启动RMI的代码HelloHost.java
- public class HelloHost {
- public static void main(String[] args) {
- ApplicationContext ctx = new ClassPathXmlApplicationContext(
- "rmi_server_context.xml");
- System.out.println("RMI服务伴随Spring的启动而启动了.....");
- }
- }
客户端
1 配置文件rmi_client_context.xml
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
- <bean id="helloWorld" class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
- <property name="serviceUrl" value="rmi://10.87.40.141:8088/hello" />
- <property name="serviceInterface" value="springapp.rmi.rmi.IHelloWorld" />
- </bean>
- </beans>
2 客户端代码 HelloClient.java
- public class HelloClient {
- public static void main(String[] args) throws RemoteException {
- ApplicationContext ctx = new ClassPathXmlApplicationContext(
- "rmi_client_context.xml");
- IHelloWorld hs = (IHelloWorld) ctx.getBean("helloWorld");
- System.out.println(hs.helloWorld());
- System.out.println(hs.sayHelloToSomeBody("Lavasoft"));
- }
- }
相关推荐
spring+rmi非本地实现,包含客户端和服务端。
java Spring+RMI入门程序源代码
spring+rmi实现非本地部署,包含客户端和服务端代码。
一个基于Spring的rmi实现,测试成功,可以远程调用。
应用Spring+hibernate+mysql+rmi+swing 做一个远程用户登陆界面。登陆进去以后出现一个界面,可以增加和删除用户。并实现国际化,压缩包中有mysql的数据库脚本。
1.4.8 RMI(远程方法调用) 1.4.9 JMS(Java消息服务) 1.4.10 JMX(Java分布式管理) 1.4.11 JACC(Java容器授权合同) 1.4.12 JCA(Java连接器体系) 1.5 小结 第二章 MVC模式介绍 2.1 MVC模式概述 2.1.1 MVC模式...
spring 与rmi 的整合 1.首先编写接口 interface : 这里的接口要继承Remote, 它是一个标识接口 2.编写实现类 3.编写main方法用于启动 service 4 配置spring文件 编写客户端测试类
spring和RMI分布式整合源码
Spring-RMI (RMI调用, HTTP调用) 本人测试过了
Spring整合RMI的使用,实现不同项目间方法的远程调用。
SpringRMI小例子代码,仅供参考。SpringRMI小例子代码,仅供参考。
这是我在国外学习是的期末项目,利用分布式技术RMI+JAVA开发客户端和服务器端的CrosswordSolver软件。 所谓CrosswordSolver就是我们平时所见过的十字交叉的英语单词,把他们填补上。 改软件使用例子,如搜索 b*ck 会...
Spring集成rmi,实现远程服务,使用RMI集成实例
spring rmi 客户端 服务器 调用
javaSwing +hibernate+spring苹果界面编写的用户管理小系统,希望对学习javaSwing ,开源的同僚下载
闲来无事,做了个Spring RMI的小例子,非常易懂。
rmi与spring整合实例
为了避免业务逻辑重新开发,顾使用spring rmi,把所有的bean作为rmi服务暴漏出来,在客户端只需要把项目依赖过来就ok,或者把以前的接口导入过来。 参考文档:...
spring RMI 服务(自动把service发布为RMI服务),本例子加入了spring的预处理,可以根据自己的需要把指定位置的bean发布为 RMI 服务。
spring RMI 简单例子