利用Spring来实现RMI,不用实现remote接口,也不用调用rmic编译stub和skeleton,
服务端可以定义org.springframework.remoting.rmi.RmiServiceExporter类完成RMI服务器实现.
客户端只要定义org.springframework.remoting.rmi.RmiProxyFactoryBean,告知rmi的url和接口
服务器实现:
接口:
IHello.java
package com.callan.Test;
public interface IHello {
public String hello(String name);
}
HelloImp.java
package com.callan.Test;
public class HelloImp implements IHello{
public String hello(String name){
return "hello:" + name;
}
}
服务端spring的配置:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
"http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="helloService" class="com.callan.Test.HelloImp"/>
<bean id="serviceExporter" class="org.springframework.remoting.rmi.RmiServiceExporter">
<property name="service">
<ref bean="helloService"/>
</property>
<!-- 定义服务名 -->
<property name="serviceName">
<value>hello</value>
</property>
<property name="serviceInterface">
<value>com.callan.Test.IHello</value>
</property>
<property name="registryPort">
<value>8888</value>
</property>
</bean>
</beans>
客户端:
必须把服务端的IHello.class文件放到客户端一份
接下来看看客户端要如何实作,只要透过org.springframework.remoting.rmi.RmiProxyFactoryBean,并告知服务的URL、代理的接口即可,就好像在使用本地端管理的服务一样:
<?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="serviceClient"
class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
<property name="serviceInterface">
<value>com.callan.Test.IHello</value>
</property>
<!-- serviceUrl以rmi开头,定义服务器地址与端口和服务名 -->
<property name="serviceUrl">
<value>rmi://localhost:8888/hello</value>
</property>
</bean>
</beans>
客户端的调用
package com.callan.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.FileSystemXmlApplicationContext;
public class RMIClient {
public static void main(String[] args) {
ApplicationContext content = new FileSystemXmlApplicationContext("E:/workspace/rmiClient/src/applicationContext.xml");
IHello iHello = (IHello)content.getBean("serviceClient");
System.out.println(iHello.hello("callan"));
}
}
文章源自:http://callan.iteye.com/blog/162756
分享到:
相关推荐
本文将深入探讨“Spring RMI(Remote Method Invocation)应用”,这是Spring框架中用于实现远程方法调用的功能,它使得分布式系统开发变得更加简单。 首先,RMI是Java平台上的一个核心特性,允许在不同JVM之间透明...
在这个简单的例子中,我们将深入理解Spring RMI的工作原理以及如何实现一个基本的Spring RMI应用。 首先,让我们了解RMI的基本概念。RMI允许Java对象在不同的JVM之间进行通信,仿佛它们都在同一台机器上。它通过...
在Spring RMI应用中,这些步骤通常会简化为以下步骤: 1. **创建远程接口**:定义一个Java接口,标记为`@Remote`,声明所有要在远程服务器上执行的方法。 ```java import java.rmi.Remote; import java.rmi....
Spring RMI(Remote Method Invocation)是Java平台上的远程方法调用技术,结合Spring框架,能够帮助开发者轻松...实践中,还可以进一步探索如何结合Spring的其他特性,如AOP和事务管理,来增强RMI应用的功能和健壮性。
8. **工具支持**:Spring工具集(Spring Tools Suite 或 IntelliJ IDEA)提供了便捷的配置和调试支持,帮助开发者更好地管理和测试RMI应用。 在实际开发中,使用Spring RMI可以降低分布式系统开发的复杂性,提升...
在这个"SpringRMI小例子"中,我们将深入探讨如何利用Spring框架来增强RMI的功能,使其更加灵活和易于管理。 首先,我们需要理解Spring框架在RMI中的角色。Spring提供了对RMI的高级抽象,通过其`org.springframework...
在IT行业中,Spring框架是Java开发中的一个基石,它提供了丰富的功能来简化应用程序的构建,包括远程过程调用(Remote Method Invocation,RMI)服务。本文将深入探讨"spring rmi 改造"这一主题,主要关注如何在原有...
6. **源码分析**:在提供的压缩包文件`SpringRMI`中,可能包含了上述所有步骤的代码示例。通过阅读这些源码,你可以深入理解Spring RMI的工作原理,包括服务暴露、注册、代理创建等。 7. **工具使用**:在开发过程...
在Spring框架的支持下,我们可以更方便地将服务发布为RMI服务,使得其他应用程序可以跨JVM(Java Virtual Machine)访问这些服务。下面将详细阐述Spring RMI服务的实现原理、配置过程以及如何自动化发布服务。 首先...
#### 四、Spring RMI 的应用场景 Spring RMI 适用于需要跨 JVM 或跨网络进行远程方法调用的场景。例如,在分布式系统中,不同的服务节点之间需要相互调用对方提供的业务逻辑或数据处理能力时,Spring RMI 就能发挥...
Spring RMI(Remote Method Invocation)是Spring框架对Java RMI技术的一种封装,使得在Spring环境中使用RMI变得更加简便。RMI是一种Java平台上的远程对象调用机制,它允许一个Java对象在不同的Java虚拟机之间调用另...
Spring RMI(Remote Method Invocation)是Java平台上的远程方法调用技术,允许程序在不同的Java虚拟机(JVM)之间进行通信...对于开发和运维而言,理解和掌握Spring RMI的应用是提升系统扩展性和可维护性的重要技能。
这些库是RMI功能的基础,确保在项目中引入这些依赖,才能正确地编译、运行RMI应用。 ### 四、项目结构 - `zrmiclient`:这个目录可能包含了RMI客户端的相关代码,包括Spring配置文件、客户端应用入口类以及可能的...