`

Spring 使用RMI

阅读更多
Spring使用RMI非常简单,甚至比直接使用RMI还简单。

第一:首先定义接口:
import java.rmi.Remote;
import java.rmi.RemoteException;

import com.zakisoft.test.rmi.vo.User;

public interface RmiUserService extends Remote{
	User login(String username, String password) throws RemoteException;
	void create(String username, String password) throws RemoteException;
}

import java.io.Serializable;

public class User implements Serializable {

	private static final long serialVersionUID = -3017748605531466285L;
	private String username;
	private String password;

	public User(String username, String password) {

		this.username = username;
		this.password = password;

	}

	public String getUsername() {
		return username;
	}

	public String getPassword() {
		return password;
	}

}


第二:实现接口
import java.net.MalformedURLException;
import java.rmi.AlreadyBoundException;
import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.registry.LocateRegistry;
import java.rmi.server.UnicastRemoteObject;

import com.zakisoft.test.rmi.server.UserService;
import com.zakisoft.test.rmi.server.UserServiceImpl;
import com.zakisoft.test.rmi.vo.User;

public class RmiUserServiceImpl extends UnicastRemoteObject implements
		RmiUserService {

	UserService service = new UserServiceImpl();

	public RmiUserServiceImpl() throws RemoteException {
	}

	private static final long serialVersionUID = -7138363701504022490L;

	public void create(String username, String password) throws RemoteException {
		service.create(username, password);
	}

	public User login(String username, String password) throws RemoteException {
		return service.login(username, password);
	}

	public static void main(String[] args) throws RemoteException, MalformedURLException, AlreadyBoundException {
		LocateRegistry.createRegistry(1099);
		Naming.bind("rmi://localhost:1099/UserService", new RmiUserServiceImpl());
		System.out.print("Service start");
	}

}


第三:在Spring配置文件中配置RMI服务
<bean id="userService" class="com.zakisoft.test.rmi.server.UserServiceImpl"></bean>
    <bean id="rmiService" class="org.springframework.remoting.rmi.RmiServiceExporter">
    	<property name="serviceName" value="UserService"/>
    	<property name="service" ref="userService"/>
    	<property name="serviceInterface" value="com.zakisoft.test.rmi.server.UserService"/>
    	<property name="registryPort" value="1099"/>
    </bean>


第四:启动RMI服务
public class SpringStartRmi {
	
	public static void main(String[] args) {
		new ClassPathXmlApplicationContext("zconfig.xml");
	}

}


第五:访问服务
import org.springframework.remoting.rmi.RmiProxyFactoryBean;

import com.zakisoft.test.rmi.server.UserService;

public class ClientSpringRmi {
	
	public static void main(String[] args) {
		RmiProxyFactoryBean factory = new RmiProxyFactoryBean();
		factory.setServiceInterface(UserService.class);
		factory.setServiceUrl("rmi://localhost:1099/UserService");
		factory.afterPropertiesSet();
		
		UserService userService = (UserService)factory.getObject();
		userService.create("test", "test");
		System.out.println(userService.login("new_user_01", "new_password_01"));	
		//userService.login("test", "test");
	}
}


第六:源码下载
http://www.zakisoft.com/?p=118
分享到:
评论
1 楼 aijnecJay 2012-09-19  
你这个例子举得把不用spring和用spring的混到一块了。。

第一步和第二步的接口和实现是不用spring的情况。
直接用第二步的main方法启动服务。

后面配了spring,直接用自己的接口和实现类注册进RmiServiceExporter即可。

相关推荐

    spring和RMI分布式整合源码

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

    Spring-RMI.rar_spring rmi

    1.2 Spring的RMI支持:Spring通过`org.springframework.remoting.rmi.RmiServiceExporter`和`RmiProxyFactoryBean`简化了RMI的使用。`RmiServiceExporter`用于发布服务,而`RmiProxyFactoryBean`则用于创建RMI服务的...

    spring+rmi非本地实现

    - **安全考虑**:在Web环境中,必须考虑到安全性问题,例如使用Spring Security来保护RMI接口,防止未经授权的访问。 - **负载均衡**:在大型分布式系统中,可能有多台服务器提供RMI服务。Spring可以配合负载均衡...

    spring与rmi 整合实例 源码详解

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

    spring中使用RMI

    在Spring的XML配置文件中,我们创建一个`&lt;bean&gt;`来表示远程服务,并使用`&lt;rmi:export&gt;`标签将该服务暴露为RMI服务: ```xml &lt;rmi:registry id="registry" port="1099" /&gt; &lt;rmi:service id=...

    Spring RMI小例子

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

    Spring RMI

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

    SpringRMI小例子

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

    如何在Spring框架中使用RMI技术.zip

    本压缩包提供了两个Java工程示例,帮助开发者了解如何在Spring环境中集成并使用RMI。 首先,让我们理解RMI的基本概念。RMI是Java提供的一种机制,使得一个Java对象能够调用运行在不同JVM上的另一个Java对象的方法。...

    Spring Rmi使用文档

    ### Spring RMI 使用详解 #### 一、Spring RMI 概述 Spring RMI 是 Spring 框架中用于支持远程方法调用(Remote Method Invocation)的功能模块。通过 Spring RMI, 开发者能够更加简便地搭建和管理远程服务。传统上...

    spring rmi 小例子

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

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

    Spring通过提供RMI集成,简化了RMI服务的创建和调用。以下是一些关键点: 1. **服务接口定义**:首先,你需要定义一个远程服务接口,这个接口将包含你希望在远程进程中执行的方法。 2. **服务实现**:接着,创建该...

    spring rmi 集成

    5. **Spring配置**:在Spring的配置文件中,可以使用`&lt;bean&gt;`标签定义RMI服务,并使用`&lt;lookup-method&gt;`标签来查找并注入远程对象。 ```xml &lt;bean id="myServiceExporter" class="org.springframework.remoting...

    spring rmi使用心得

    为了避免业务逻辑重新开发,顾使用spring rmi,把所有的bean作为rmi服务暴漏出来,在客户端只需要把项目依赖过来就ok,或者把以前的接口导入过来。 参考文档:...

    rmi与spring整合实例

    当我们谈论“RMI与Spring整合实例”时,我们通常是指将RMI技术与Spring框架结合使用,以便构建可扩展的、分布式的Java应用程序。下面将详细解释这两个概念以及如何将它们整合在一起。 1. RMI基础: - RMI的核心...

    java Spring+RMI入门程序源代码

    Java Spring 框架与 Remote Method Invocation (RMI) 的结合使用是构建分布式应用程序的一种常见方式。本项目提供了一个入门级的源代码示例,帮助开发者理解如何在 Spring 环境下集成 RMI 技术。以下是关于这两个...

    java spring+rmi 的远程调用例子

    Java Spring与RMI(Remote Method Invocation)的整合是企业级应用中常见的远程服务交互方式。Spring框架提供了对RMI的支持,使得开发者能够方便地在分布式环境中进行服务的调用。这个压缩包文件“Spring+RMI”很...

    spring RMI 实用分享

    在本文中,我们将深入探讨Spring框架如何集成RMI,以及如何创建和使用RMI客户端。 首先,让我们了解RMI的基本概念。RMI是一种机制,它允许一个对象在一台计算机上执行的方法可以在另一台计算机上执行,就好像这些...

    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 改造

    在IT行业中,Spring框架是Java开发中的一个基石,它提供了丰富的功能来简化应用程序的构建,包括远程过程调用(Remote Method Invocation,RMI)服务。本文将深入探讨"spring rmi 改造"这一主题,主要关注如何在原有...

Global site tag (gtag.js) - Google Analytics