如果你的RMI的实现里,需要用到Spring IOC&DI,那么你就需要改改你的Code了。
当然了,这里说的是实现类(Stub)类,接口是没有什么问题的只需要继承自remote就行了,需要注意的就是每个方法都要throws RemoteException;
服务端接口:
public interface IDemoServer extends Remote {
/**
* 查询客户信息
* @param user 客户信息
* @return
*/
List<User> queryUserInfo(User user)throws RemoteException;
}
服务端实现:(需要注意的是必须显示的书写构造方法,还有就是他不能再继承自UnicastRemoteObject类了,因为它会抛出其它异常。)
@Component
public class DemoRMIServer implements IDemoRMIServer {
@Autowiredv
private UserService userService;
public DemoRMIServer() {
super();
}
/**
* 查询客户拥有的安全载体信息
* @return
*/
public List<User> queryUserInfo(User user)throws RemoteException {
return userService.queryUserInfo(user);
}
}
配置文件(Spring):
<bean id="m3AdminRMI" class="org.springframework.remoting.rmi.RmiServiceExporter">
<property name="serviceName" value="Demo" />
<property name="service" ref="demoRMIServer" />
<property name="serviceInterface" value="com.demo.IDemoRMIServer " />
<!-- <property name="registryHost" value="localhost"/> -->
<property name="registryPort" value="10999" />
</bean>
这样服务端的代码就完成了。由于使用了Spring3.0的MVC模式,所以,这里DemoRMIServer 被加了 annotation @Component,所以他也会被Spring 当做一个Bean来实例化,按照规范他会被命名为你的类名,第一字母小写。
现在是客户端:
首先我们要做的就是配置(Spring):
<bean id="rmiService" class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
<property name="serviceUrl" value="rmi://127.0.0.1:10999/Demo"></property>
<property name="serviceInterface" value="com.demo.IDemoRMIServer"></property>
</bean>
然后,你随便写一个Java类,rmiServer注入进来就行。
public class RMIClientTest {
@Autowired
private RmiProxyFactoryBean rmiServer;
public void testRMIClient(){
User user=new User();
user.setContactName("Yy");
user.setIdentifierType("1");
user.setIdentifierNumber("56");
try {
IDemoRMIServer server = (IDemoRMIServer )rmiServer.getObject();
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String [] args) {
FileSystemXmlApplicationContext fsxac = new FileSystemXmlApplicationContext("classpath:applicationContext.xml");
System.out.println("init ...");
IDemoRMIServer service = (IDemoRMIServer )fsxac.getBean("rmiService");
System.out.println("start service ...");
User user=new User();
user.setContactName("Yy");
user.setIdentifierType("01");
user.setIdentifierNumber("056");
try {
System.out.println("start query ...");
List<User> users= service.queryUserInfo(user);
for (User user: users) {
System.out.println(user.getContactName() + ">>>" + user.getPhone() + ">>>" );
}
System.out.println(" ... <<");
} catch (RemoteException e1) {
e1.printStackTrace();
}
}
}
Spring - RMI 就是这么简单,上面提供了两种方式,下面那种方试用来测试的(main方法)。
分享到:
相关推荐
Spring-RMI (RMI调用, HTTP调用) 本人测试过了
spring-rmi Spring RMI调用方法,本人测试过了
Spring整合RMI的使用,实现不同项目间方法的远程调用。
spring rmi 2.5.x版本与3.0.x版本不兼容解决方案
spring-rmi-示例 项目是从 code.google.com/p/springrmiexample 导出的,我这边稍作修改 这个项目是如何在 Spring 的帮助下设置 RMI 服务器和客户端的示例。 该项目包含2个子项目: Spring RMI 示例服务器,即 Web...
Spring Framework 是一种轻量级的解决方案,是构建你...明式事务管理,通过RMI或Web服务远程访问你的逻辑,以及用于持久存储数据的各种选项。 它提供了一个全功能的 MVC 框架,并使你能够将 AOP 透明地集成到你的软件中
Hessian RPC-RMI技术 整合Structs Spring Hibernate Ibatis 包含Hessian配置说明、服务器Server Demo、客户端Client Demo.
Framework supports declarative transaction management, remote access to your logic through RMI or web services, and various options for persisting your data. It offers a full-featured MVC framework, ...
(9) spring-remoting.jar 这个jar文件包含支持EJB、JMS、远程调用Remoting(RMI、Hessian、Burlap、Http Invoker、JAX-RPC)方面的类。 (10) spring-support.jar 这个jar文件包含支持缓存Cache(ehcache)、JCA、...
spring 与rmi 的整合 1.首先编写接口 interface : 这里的接口要继承Remote, 它是一个标识接口 2.编写实现类 3.编写main方法用于启动 service 4 配置spring文件 编写客户端测试类
13) spring-mock.jar需spring-core.jar,spring-beans.jar,spring-dao.jar,spring-context.jar,spring-jdbc.jarspring2.0和spring2.5及以上版本的jar包区别Spring 2.5的Jar打包 在Spring 2.5中, Spring Web MVC...
spring和RMI分布式整合源码
spring+rmi非本地实现,包含客户端和服务端。
1. 远程调用RMI(Remote Method Invocation): 通过使用 RmiProxyFactoryBean 和 RmiServiceExporter,并且,Spring支持两个传统的RMI(使用 java.rmi.Remote接口和java.rmi.RemoteException)和通过RMI调用器实现的...
由于spring2和spring3的rmi方式调用方式不同引起的,通过查阅相关文档后发现,spring3不在需要生成skeleton和stub了,所以把这个类从spring-context中删除了,解决办法就是想办法将它再加进来
SpringRMI小例子代码,仅供参考。SpringRMI小例子代码,仅供参考。
Spring集成rmi,实现远程服务,使用RMI集成实例
spring rmi 客户端 服务器 调用
java Spring+RMI入门程序源代码
闲来无事,做了个Spring RMI的小例子,非常易懂。