1.远程接口定义
package org.spring.rmi;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.List;
/**
* 远程接口继承Remote
* @author chenyw
*
*/
public interface UserService extends Remote{
/**
* 返回用户列表
* @return
* @throws RemoteException
*/
public List<User> getUsers()throws RemoteException;;
}
2.远程接口实现
package org.spring.rmi;
import java.rmi.Remote;
import java.rmi.RemoteException;
import java.util.List;
/**
* 远程接口继承Remote
* @author chenyw
*
*/
public interface UserService extends Remote{
/**
* 返回用户列表
* @return
* @throws RemoteException
*/
public List<User> getUsers()throws RemoteException;;
}
3.实体实现序列化接口
package org.spring.rmi;
import java.io.Serializable;
/**
* user 序列化
* @author chenyw
*
*/
public class User implements Serializable{
/**
*
*/
private static final long serialVersionUID = 1L;
public User(String id,String name){
this.id= id;
this.name= name;
}
private String id;
private String name;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
4.spring服务端配置
<?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:p="http://www.springframework.org/schema/p"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<bean id="userService" class="org.spring.rmi.UserServiceImpl">
<!-- any additional properties, maybe a DAO? -->
</bean>
<!-- rmi服务端bean -->
<bean class="org.springframework.remoting.rmi.RmiServiceExporter">
<property name="serviceName" value="userService" />
<property name="service" ref="userService" />
<property name="serviceInterface"
value="org.spring.rmi.UserService" />
<!-- 端口默认为1099 -->
<property name="registryPort" value="1199" />
</bean>
<!-- rmi客户端bean -->
<bean id="rmiService"
class="org.springframework.remoting.rmi.RmiProxyFactoryBean">
<property name="serviceInterface">
<value>org.spring.rmi.UserService</value>
</property>
<property name="serviceUrl">
<value>rmi://localhost:1199/userService</value>
</property>
</bean>
</beans>
由于客户端与服务端都在同一个项目,所以也把客户端的配置写入了,也可以将客户端和服务端分开,写成两个项目,这里就不在详细说明了。如果分开项目请注意(服务器端的接口一定要拷贝一份到客户端,而且包名一定要相同)
5.客户端调用远程接口
package org.spring.rmi;
import java.rmi.RemoteException;
import java.util.List;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class RmiClient {
/**
* @param args
*/
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext(
"spring_rmi.xml");
UserService service=(UserService)context.getBean("rmiService");
try {
List<User> user = service.getUsers();
for (User u : user) {
System.out.println(u.getName());
}
} catch (RemoteException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
(1)将项目部署到tomcat启动
(2)执行RmiClient 程序即可远程调用
运行结果
yuwen1
yuwen2
yuwen3
yuwen4
yuwen5
如有spring架构用到的包或web.xml不明之处请参照
本人开了个充值淘宝网店。有需要的朋友请访问的店铺并拍下所充值的话费,
本店已加入消费保障服务计划,货源来源于淘宝充值平台,安全可靠便捷,
支付过后立即到账
http://xiaowen168.taobao.com
分享到:
相关推荐
spring+rmi非本地实现,包含客户端和服务端。
spring+rmi实现非本地部署,包含客户端和服务端代码。
spring 与rmi 的整合 1.首先编写接口 interface : 这里的接口要继承Remote, 它是一个标识接口 2.编写实现类 3.编写main方法用于启动 service 4 配置spring文件 编写客户端测试类
springRMI接口实现
Spring集成rmi,实现远程服务,使用RMI集成实例
Spring整合RMI的使用,实现不同项目间方法的远程调用。
一个基于Spring的rmi实现,测试成功,可以远程调用。
1. 远程调用RMI(Remote Method Invocation): 通过使用 RmiProxyFactoryBean 和 RmiServiceExporter,并且,Spring支持两个传统的RMI(使用 java.rmi.Remote接口和java.rmi.RemoteException)和通过RMI调用器实现的...
java写的基于spring的rmi实现。非常简单。。。。新手学习用。
应用Spring+hibernate+mysql+rmi+swing 做一个远程用户登陆界面。登陆进去以后出现一个界面,可以增加和删除用户。并实现国际化,压缩包中有mysql的数据库脚本。
spring rmi 多接口服务端配置 调用多接口客户端配置
上文我们利用Spring rmi实现了Spring的远程访问(Spring 实现远程访问详解——rmi),本文主要讲解利用HttpInvoke实现远程访问。 Spring httpInvoker使用标准java序列化机制,通过Http暴露业务服务。如果你的参数和...
springRMI示例,可以通过该技术实现引擎机功能,做业务处理
JMX集成到spring中,并提供了一个rmi远程连接的配置文件
做为java分布式计算的基础... 3.RMI服务器实现及编码 4.RMI客户机实现及编码 5.使RMI穿过防火墙--定制rmiSocket 6.Spring中的rmi应用 7.类似RMI的相关开源技术实现 -------具体请下载附件或登陆www.NetJava.cn
三种方式实现java远程调用(rmi) 方式一:原始方式 方式二:spring 方式三:jndi 解压,放到myeclipse上可用
前几章我们分别利用spring rmi、httpinvoker、httpclient、webservice技术实现不同服务器间的远程访问。本章我将通过spring jms和activemq实现单Web项目服务器间异步访问和多Web项目服务器间异步访问。 一. 简介 1. ...
12.2.4. 不使用回调的基于Spring的DAO实现 12.2.5. 基于Hibernate3的原生API实现DAO 12.2.6. 编程式的事务划分 12.2.7. 声明式的事务划分 12.2.8. 事务管理策略 12.2.9. 容器资源 vs 本地资源 12.2.10. 在应用服务器...
12.2.4. 不使用回调的基于Spring的DAO实现 12.2.5. 基于Hibernate3的原生API实现DAO 12.2.6. 编程式的事务划分 12.2.7. 声明式的事务划分 12.2.8. 事务管理策略 12.2.9. 容器资源 vs 本地资源 12.2.10. 在应用...
第3章 Spring AOP和AspectJ支持 112 3.1 启用Spring的AspectJ注解支持 113 3.1.1 问题 113 3.1.2 解决方案 113 3.1.3 工作原理 113 3.2 用AspectJ注解声明aspect 115 3.2.1 问题 115 3.2.2 解决方案...