`
ywChen
  • 浏览: 121585 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Spring3 RMI 实现

阅读更多

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不明之处请参照

 

Spring3 MVC 学习笔记(一) 入门

 

本人开了个充值淘宝网店。有需要的朋友请访问的店铺并拍下所充值的话费,

本店已加入消费保障服务计划,货源来源于淘宝充值平台,安全可靠便捷,

支付过后立即到账

http://xiaowen168.taobao.com

 

 

分享到:
评论
1 楼 kobe1700 2011-06-09  
如果上面需要添加安全呢?有没有带安全的例子?

相关推荐

    spring+rmi非本地实现

    在这个“spring+rmi非本地实现”的项目中,我们有两个主要部分:客户端(client)和服务端(rmiserver)。让我们深入探讨一下这两个部分以及它们如何协同工作。 1. **服务端(rmiserver)**: - **创建RMI接口**:...

    spring+rmi实现非本地部署

    总结,"spring+rmi实现非本地部署"涉及了Spring框架、RMI技术以及Web应用的集成,这些知识点在Java分布式系统开发中至关重要。通过理解并熟练掌握这些内容,开发者可以构建出高效、可扩展的分布式服务系统。

    spring和RMI分布式整合源码

    具体到这个压缩包“springRMI”,我们可以推测它可能包含了以下几个部分: 1. **配置文件**:如`applicationContext.xml`,其中定义了Spring容器中的Bean,可能包括RMI服务的接口和实现。 2. **远程接口**:`.java`...

    Spring-RMI.rar_spring rmi

    Spring框架对RMI的支持使得它更易于集成到现代企业级应用中,实现了服务间的松耦合和高效通信。本文将详细讲解Spring与RMI的整合,以及如何通过"SpringRMIClient"和"SpringRMIServer"这两个示例文件实现跨项目的远程...

    spring与rmi 整合实例 源码详解

    spring 与rmi 的整合 1.首先编写接口 interface : 这里的接口要继承Remote, 它是一个标识接口 2.编写实现类 3.编写main方法用于启动 service 4 配置spring文件 编写客户端测试类

    Spring RMI

    - **配置RMI服务**:在Spring的XML配置文件中,使用`&lt;bean&gt;`标签定义RMI服务,指定远程接口、实现类以及RMI服务的端口。 - **注册RMI服务**:使用`&lt;bean&gt;`标签的`lookup-by-name`属性,将服务注册到RMI注册表。 - **...

    Spring RMI小例子

    在这个"Spring RMI小例子"中,我们将深入理解Spring如何简化RMI的使用,以及如何通过它实现跨网络的交互。 首先,RMI允许Java对象在不同的JVM之间进行通信,仿佛它们都在同一个进程中运行。Spring通过提供自动注册...

    SpringRMI小例子

    在这个"SpringRMI小例子"中,我们将深入探讨如何利用Spring框架来增强RMI的功能,使其更加灵活和易于管理。 首先,我们需要理解Spring框架在RMI中的角色。Spring提供了对RMI的高级抽象,通过其`org.springframework...

    spring rmi 小例子

    6. **源码分析**:在提供的压缩包文件`SpringRMI`中,可能包含了上述所有步骤的代码示例。通过阅读这些源码,你可以深入理解Spring RMI的工作原理,包括服务暴露、注册、代理创建等。 7. **工具使用**:在开发过程...

    rmi与spring整合实例

    在IT行业中,远程方法调用(Remote Method ...通过上述整合,我们可以构建一个健壮的分布式系统,利用Spring的高级特性管理和控制RMI服务,同时利用RMI实现跨JVM的通信。这样的系统既易于维护,又具有高度的可扩展性。

    Spring-RMI (RMI调用, HTTP调用)

    3. **Spring配置**:在Spring配置文件中,你需要声明一个`RmiServiceExporter`,它会暴露你的服务实现为RMI服务。你可以通过指定`serviceInterface`和`serviceImplementation`属性来关联接口和实现。 4. **客户端...

    spring rmi 集成

    本篇将深入探讨Spring如何与RMI结合,以及客户端和服务器端的实现细节。 ### 一、Spring RMI 服务器端集成 1. **定义远程接口**:首先,我们需要创建一个Java接口,该接口将定义远程服务的方法。例如,我们可以...

    springRMI接口实现

    Spring Remote Method Invocation ...理解并熟练掌握Spring RMI接口实现,能帮助开发者构建健壮的分布式系统,提高系统的可扩展性和可维护性。但同时也需要注意,随着技术的更新,适时考虑采用更先进的远程通信方式。

    java Spring+RMI入门程序源代码

    3. **事务管理**:Spring 的 AOP 支持可以在 RMI 调用中添加事务管理,确保跨远程调用的一致性。 4. **异常处理**:Spring 可以帮助封装 RMI 调用中可能出现的异常,提供统一的错误处理策略。 通过这个 "java ...

    java spring+rmi 的远程调用例子

    这个压缩包文件“Spring+RMI”很可能包含了实现这样一个远程调用示例的所有必要组成部分,包括配置文件、接口定义、服务器端实现以及客户端调用代码。 首先,我们来理解一下Java RMI。RMI是Java提供的一种原生的...

    spring rmi 改造

    本文将深入探讨"spring rmi 改造"这一主题,主要关注如何在原有的Spring RMI实现上进行优化,加入线程池控制以提高系统性能和资源利用率。 首先,让我们理解Spring RMI的基本概念。Spring RMI允许开发者利用Spring...

    spring rmi应用

    3. **配置Spring容器**:在Spring的XML配置文件中,你需要声明一个`&lt;bean&gt;`来表示远程服务,使用`&lt;rmi:export&gt;`或`&lt;bean class="org.springframework.remoting.rmi.RmiServiceExporter"&gt;`标签将服务导出为RMI。...

    spring RMI简单例子

    3. **Spring配置(Spring Configuration)**:在Spring配置文件中,我们需要声明远程服务bean,并配置RMI服务器和客户端的设置。例如: ```xml &lt;bean id="rmiRegistry" class="org.springframework.remoting.rmi....

    spring RMI 实用分享

    3. **配置RMIServer**:在Spring配置文件中,使用`RmiRegistryFactoryBean`创建RMI注册表,并使用`RmiServiceExporter`导出远程服务。 ```xml &lt;bean id="registry" class="org.springframework.remoting.rmi....

    Spring 实现远程访问详解——rmi

    1. 远程调用RMI(Remote Method Invocation): 通过使用 RmiProxyFactoryBean 和 RmiServiceExporter,并且,Spring支持两个传统的RMI(使用 java.rmi.Remote接口和java.rmi.RemoteException)和通过RMI调用器实现的...

Global site tag (gtag.js) - Google Analytics