赞
踩
Java RMI,是Java在JDK1.2中实现的远程方法调用,大大增强了Java开发分布式应用的能力,平时我们都是依赖第三方的框架开发服务接口,如:Webservice、Rest接口等等,但基于纯Java的远程方法调用-RMI,你了解吗?其原理也是Socket,不依赖任何Jar包,所有的类都在JDK里的java.rmi.*下,下面通过一个Demo学习其调用过程,超简单!
先看工程目录结构:
RMI工程目录结构
1、定义RMI远程调用接口IUserManager,这个类定义了客户端调用远程服务的功能,需要注意接口要继承Remote
public interface IUserManager extends Remote {public String getUserName() throws RemoteException;public Account getAdminAccount() throws RemoteException;}
2、创建实现类UserManagerImpl
public class UserManagerImpl implements IUserManager { public UserManagerImpl() throws RemoteException { } private static final long serialVersionUID = -3111492742628447261L; public String getUserName() throws RemoteException{ return "TT"; } public Account getAdminAccount() throws RemoteException{ Account account=new Account(); account.setUsername("TT"); account.setPassword("123456"); return account; }}
需要注意的是:实现类中的每个方法均需抛出RemoteException异常。
3、创建Java Bean,命名为:Account
public class Account implements Serializable, Cloneable {private static final long serialVersionUID = -1858518369668584532L;private String username;private String password;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}}
以上三个类无需多介绍,都是普通的接口、接口实现类以及实体类。
4、RMI服务端入口类Entry.java
public class Entry {
public static void main(String[] args) throws AlreadyBoundException,RemoteException {
UserManagerImpl userManager = new UserManagerImpl();
IUserManager userManagerI = (IUserManager) UnicastRemoteObject.exportObject(userManager, 0);
Registry registry = LocateRegistry.createRegistry(2002);
registry.rebind("userManager
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。