1.Spring中配置 RMI服务 服务端 发布
a. IHelloWorld接口 sayHi() 方法
b. HelloWorld实现类 sayHi() 方法
c. applicationcontext配置
<bean id="helloWorld" class="com.tom.rmi.HelloWorld"> </bean>
<bean class="org.springframework.remoting.rmi.RmiServiceExporter">
<!-- RMI服务名 -->
<property name="serviceName" value="HelloWorld"/>
<!-- Service实现类 -->
<property name="service" ref="helloWorld"/>
<!-- Service实现接口 -->
<property name="serviceInterface" value="com.tom.rmi.IHelloWorld"/>
<!-- RMI注册端口号 -->
<property name="registryPort" value="9478" />
<!-- 服务通信端口,缺省为0 -->
<property name="servicePort" value="9477" />
</bean>
2. 客户端
1.拷IHelloWorld接口到客户端项目(或者Class文件)
2.在mian方法中调用 通过获得HelloWorld 的bean调用sayHi()方法
获得HelloWorld方法方式
1.Spring context文件中配置
<bean id="serviceClient" class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
<property name="serviceInterface">
<value>com.tom.rmic.IHelloWorld</value>
</property>
<!-- serviceUrl以rmi开头,定义服务器地址与端口和服务名 -->
<property name="serviceUrl">
<value>rmi://localhost:9478/HelloWorld</value>
</property>
</bean>
2.通过代码完成
public static Object getRemoteService() {
String serviceUrl = "rmi://" +"localhost"+ ":" +"9478" + "/" +"HelloWorld";
RmiProxyFactoryBean rmiProxyFactoryBean = new RmiProxyFactoryBean();
rmiProxyFactoryBean.setServiceInterface(IHelloWorld.class);
rmiProxyFactoryBean.setServiceUrl(serviceUrl);
rmiProxyFactoryBean.setLookupStubOnStartup(false);
rmiProxyFactoryBean.setRefreshStubOnConnectFailure(true);
rmiProxyFactoryBean.afterPropertiesSet();
return rmiProxyFactoryBean.getObject();
}
然后获得HelloWorld对应的bean 调用sayHi()方法
分享到:
相关推荐
Spring RMI服务是一种在Java平台上实现远程方法调用(Remote Method Invocation, RMI)的技术,它允许分布式系统中的不同组件通过网络进行通信。在Spring框架的支持下,我们可以更方便地将服务发布为RMI服务,使得...
Spring RMI允许开发者利用Spring的依赖注入(DI)和面向切面编程(AOP)特性来创建和管理RMI服务。通过Spring的RMI支持,我们可以方便地定义服务接口和服务实现,然后通过配置文件或注解将它们暴露为RMI服务。这样做...
以下是创建Spring RMI服务的步骤: 1. **定义远程接口**:创建一个接口,标记为`@Remote`,声明要暴露给远程客户端的方法。 ```java import java.rmi.Remote; import java.rmi.RemoteException; public interface ...
- **`RmiServiceExporter`**:Spring提供的bean,负责将Spring Bean暴露为RMI服务。 - **`RmiProxyFactoryBean`**:客户端使用的bean,创建远程服务的代理对象。 3. **创建RMI服务**: - 定义远程接口,标记为`@...
- **配置RMI服务**:在Spring的XML配置文件中,使用`<bean>`标签定义RMI服务,指定远程接口、实现类以及RMI服务的端口。 - **注册RMI服务**:使用`<bean>`标签的`lookup-by-name`属性,将服务注册到RMI注册表。 - **...
在这个"SpringRMI小例子"中,我们将深入探讨如何利用Spring框架来增强RMI的功能,使其更加灵活和易于管理。 首先,我们需要理解Spring框架在RMI中的角色。Spring提供了对RMI的高级抽象,通过其`org.springframework...
Spring RMI整合了RMI机制,提供了一种更加灵活和易于管理的方式,让开发者可以在Spring容器中定义远程服务,并通过Spring的IoC(Inversion of Control)和AOP(Aspect Oriented Programming)特性来增强这些服务。...
2. **Spring RMI 服务器**:Spring 支持通过 `RmiServiceExporter` 将 Spring 管理的bean导出为 RMI 服务。只需将这个类添加到 Spring 配置中,指定要导出的 bean 和接口即可。 3. **事务管理**:Spring 的 AOP ...
Spring RMI(Remote Method Invocation)是Java平台上的远程方法调用技术,结合Spring框架的特性,使得在分布式系统中调用远程服务变得更加便捷。在这个简单的例子中,我们将深入理解Spring RMI的工作原理以及如何...
3. **服务器端配置**:在Spring配置文件中,我们需要声明RMI服务的bean,并将其导出为远程服务。这可以通过`rmiServerRegistry`和`rmiServiceExporter`实现: ```xml ...
为了避免业务逻辑重新开发,顾使用spring rmi,把所有的bean作为rmi服务暴漏出来,在客户端只需要把项目依赖过来就ok,或者把以前的接口导入过来。 参考文档:...
通过 Spring RMI, 开发者能够更加简便地搭建和管理远程服务。传统上,使用 Java 的 RMI 需要进行复杂的配置和编码工作,例如定义远程接口继承 `java.rmi.Remote` 接口、实现类继承 `java.rmi.UnicastRemoteObject` ...
接着,通过Spring的`RmiServiceExporter`,我们可以将这个服务暴露为RMI服务。`RmiServiceExporter`会自动处理RMI注册和导出服务到RMI注册表的过程,只需要在配置文件中指定服务的bean名和接口类型。 服务端的配置...
具体到这个压缩包“springRMI”,我们可以推测它可能包含了以下几个部分: 1. **配置文件**:如`applicationContext.xml`,其中定义了Spring容器中的Bean,可能包括RMI服务的接口和实现。 2. **远程接口**:`.java`...
在Java世界中,远程方法调用(Remote Method Invocation...通过"SpringRMIClient"和"SpringRMIServer"示例,我们可以清晰地了解如何在Spring框架下设置和调用RMI服务。这在构建可扩展、高可用的企业级应用中非常有用。
5. **Spring配置**:在Spring的配置文件中,可以使用`<bean>`标签定义RMI服务,并使用`<lookup-method>`标签来查找并注入远程对象。 ```xml <bean id="myServiceExporter" class="org.springframework.remoting...
- `org.springframework.jndi`: 用于JNDI(Java Naming and Directory Interface)操作,RMI服务通常会在JNDI注册表中注册。这个包中的工具类可以帮助我们查找和绑定RMI服务。 配置Spring RMI的基本步骤如下: 1. ...
4. **启动RMI服务器**:使用Spring的`ApplicationContext`启动服务器,RMI服务会自动注册。 5. **客户端调用**:在客户端获取到代理对象后,就可以像调用本地对象一样调用远程方法。 在博客链接中,`zhykhs.iteye....
通过这种方式,Spring可以帮助你管理RMI服务的生命周期,包括初始化、暴露服务以及在应用关闭时正确地清理资源。 在`Spring-RMI`这个压缩包中,你应该会找到服务端和客户端的示例代码,它们展示了如何创建和使用RMI...