基于RMI远程通讯的一点说明:
1.RMI 服务器
Spring 配置:
<bean class="org.springframework.remoting.rmi.RmiServiceExporter">
<!-- RMI服务名 -->
<property name="serviceName" value="MyRMIService" />
<!-- Service实现类 -->
<property name="service" ref="MyRMIServiceImpl" />
<!-- Service实现接口 -->
<property name="serviceInterface" value="com.service.MyServiceInterface" />
<!-- RMI注册端口号 -->
<property name="registryPort" value="9478" />
<!-- 服务通信端口,缺省为0 -->
<property name="servicePort" value="9477" />
</bean>
应用服务器会维护RMI注册,我们最好不要干扰它。业务就绑定在rmi://HOST:9478/MyRMIService上。我们将在客户端使用URL来连接业务。
2.RMI 客户端
public Object getRemoteService() {
String serviceUrl = "rmi://" + 远程服务IP + ":" + 远程服务注册端口 + "/" + 远程服务名;
RmiProxyFactoryBean rmiProxyFactoryBean = new RmiProxyFactoryBean();
rmiProxyFactoryBean.setServiceInterface(MyServiceInterface.class);
rmiProxyFactoryBean.setServiceUrl(serviceUrl);
rmiProxyFactoryBean.setLookupStubOnStartup(false);
rmiProxyFactoryBean.setRefreshStubOnConnectFailure(true);
rmiProxyFactoryBean.afterPropertiesSet();
return rmiProxyFactoryBean.getObject();
}
客户端通过调用getRemoteService()方法获得远程接口对象。
分享到:
相关推荐
2. **调用远程方法**:获取到引用后,就可以像调用本地对象一样调用远程对象的方法。 Spring通过`RmiRegistryFactoryBean`和`RmiServiceExporter`简化了RMI的配置。`RmiRegistryFactoryBean`用于创建RMI注册表,而`...
### RMI远程调用代码及使用方法 #### 一、RMI简介 远程方法调用(Remote Method Invocation,简称RMI)是Java平台提供的一种分布式计算技术,它允许开发人员在不同的Java虚拟机(JVM)之间进行对象的远程调用。通过...
3. **调用远程方法**:客户端使用获取的引用调用远程方法,RMI会将调用封装成一个消息,通过网络发送到服务器。 4. **执行远程方法**:服务器接收到消息后,RMI系统会在服务器端的JVM上激活远程对象,执行相应的...
这些协议允许我们跨越网络边界,像调用本地方法一样调用远程服务。 在本实例中,我们关注的是HTTP Invoker,这是一种基于HTTP的轻量级远程调用解决方案。HTTP Invoker不需要额外的二进制协议支持,而是利用Java序列...
最近在学习代理模式,用到了java rmi远程调用,包含服务端和客户端,之前一直没有接触过,学习了java rmi远程调用,一方面可以了解代理模式,一方面熟悉java低层的远程
3. **客户端消费**:客户端通过Spring的`RmiProxyFactoryBean`或`RmiClientInterceptor`来创建远程服务的代理,从而调用远程方法。 这种方式的优点在于,Spring的依赖注入和AOP功能可以轻松地应用于RMI服务。 ### ...
- 调用远程方法:使用获取到的引用调用`readFile`方法,传入文件路径,获取返回的文件内容。 在实际应用中,需要注意以下几点: - **异常处理**:RMI调用可能会抛出`RemoteException`和其他网络相关的异常,需要...
- `BankClient.java`:客户端代码,用于调用远程服务。 - `server.properties`:服务器配置文件,可能包含RMI注册表的端口号和绑定名称。 - `build.xml`或`pom.xml`:构建脚本,用于编译和打包项目。 了解RMI对于...
RMI的核心理念是让开发者能够像调用本地方法一样调用远程对象的方法,简化了分布式系统的设计和实现。 **什么是RMI** RMI(Remote Method Invocation)是一种Java技术,它提供了在不同网络节点上的Java虚拟机之间...
4. **创建远程客户端**:在客户端,Spring的`RmiProxyFactoryBean`可以创建一个代理,这个代理就像本地对象一样调用远程服务: ```java RmiProxyFactoryBean proxy = new RmiProxyFactoryBean(); proxy....
1. 远程调用RMI(Remote Method Invocation): 通过使用 RmiProxyFactoryBean 和 RmiServiceExporter,并且,Spring支持两个传统的RMI(使用 java.rmi.Remote接口和java.rmi.RemoteException)和通过RMI调用器实现的...
5. **编写客户端代码**:在客户端,通过Registry获取远程对象的引用,然后就可以像调用本地对象一样调用远程方法。 6. **处理异常**:RMI可能会抛出多种异常,如RemoteException、NotBoundException等,需要在...
在RMI架构中,客户端能够像调用本地对象一样调用远程服务器上的对象,极大地简化了分布式应用的开发。 RMI的核心概念包括: 1. **远程接口(Remote Interface)**:定义了可以在远程对象上执行的方法。这个接口...
4. 客户端调用:客户端通过RMI服务获取远程对象的引用,然后像调用本地对象一样调用其方法。 RMI的使用步骤: 1. 定义远程接口:接口需继承`java.rmi.Remote`,并声明可能抛出`java.rmi.RemoteException`的方法。 2...
RMI的主要优点是其透明性,即开发者可以像调用本地方法一样调用远程方法,而无需关心方法的实际执行位置。 ### 一、RMI的原理与工作流程 RMI的基本工作流程包括以下几个步骤: 1. **服务器端**: - 创建并实现一...
2. **服务消费者端配置**:在客户端,你需要创建一个HttpInvokerProxyFactoryBean,它是一个Spring AOP代理,可以调用远程服务。配置如下: ```xml <bean id="myRemoteServiceProxy" class="org.springframework....
分布式RMI(Remote Method Invocation)远程调用是一种在分布式系统中实现对象间通信的技术,它允许一个对象在某个进程中调用另一个位于不同进程或者不同计算机上的对象的方法,从而实现跨网络的对象交互。...
- **RMIClient**:通过RMI服务调用远程对象的方法。 2. **Spring对RMI的支持**: - **`<bean>`标签中的`rmi:`命名空间**:Spring配置文件中可以使用`<rmi:registry>`来定义RMI注册表,`<rmi:export>`用于导出远程...
实现java RMI 远程调用,包括 RMIServer RMIClient源码,测试用例。
4. **客户端**:客户端通过RMI的`Naming.lookup()`方法获取远程对象的引用,然后就可以像调用本地对象一样调用远程对象的方法。 5. **RMI注册表**:RMI注册表(RMID或Java Naming and Directory Interface,JNDI)...