部署
public class StartService {
private static final String IP = "127.0.0.1";
private static final int PORT = 9999;
private static final String REMOTE_NAME = "userDao";
private static final String REMOTE_URL = "rmi://" + IP + ":" + PORT + "/" + REMOTE_NAME;
public static void main(String[] args) {
try {
UserDao userDao = new UserDaoImpl(); // 实例化对象
LocateRegistry.createRegistry(PORT); // 注册端口
Naming.bind(REMOTE_URL, userDao); // 绑定远程服务对象
System.out.println("远程" + REMOTE_NAME + "启动成功....");
} catch (RemoteException e) {
System.err.println("远程对象出错");
e.printStackTrace();
} catch (MalformedURLException e) {
System.err.println("URL出错了");
e.printStackTrace();
} catch (AlreadyBoundException e) {
System.err.println("绑定的对象已经存在了");
e.printStackTrace();
}
}
}
/**
* 远程接口 必须继承与Remote对象
*/
interface UserDao extends Remote {
/**
* 简单的测试方法
*
* @param name
*/
public void sayName(String name) throws RemoteException;
}
/**
*
* 接口的实现类 必须继承UnicastRemoteObject(单一远程对象) 实现UserDao自己的接口
*/
class UserDaoImpl extends UnicastRemoteObject implements UserDao {
public UserDaoImpl() throws RemoteException {
}
@Override
public void sayName(String name) {
if (name != null && !name.equals("")) {
System.out.println("我的名字是:" + name);
} else {
System.err.println("名字不为空....");
}
}
}
测试调用
public class TestRemote {
public static void main(String[] args) {
try {
// 在rmi服务中查询userdao的对象
UserDao userDao = (UserDao) Naming.lookup("rmi://127.0.0.1:9999/userDao");
// 调用远程服务的方法
userDao.sayName("spring sky");
} catch (MalformedURLException e) {
System.err.println("URL出错");
e.printStackTrace();
} catch (RemoteException e) {
System.err.println("远程对象出错");
e.printStackTrace();
} catch (NotBoundException e) {
System.err.println("没有找到绑定的对象");
e.printStackTrace();
}
}
}
分享到:
相关推荐
Java RMI(Remote Method Invocation,远程方法调用)是Java平台提供的一种分布式计算技术,它允许在不同的Java虚拟机之间进行方法调用,仿佛这些方法都在本地对象上执行一样。这个"JAVA RMI简单例子"旨在帮助我们...
通过这个完整的Java RMI通信例子,我们可以学习如何在实际项目中利用RMI来构建分布式系统,提升应用的可扩展性和灵活性。同时,理解RMI的工作原理也有助于我们更好地设计和实现其他分布式技术,如EJB、Web服务等。
远程方法调用(Remote Method Invocation,简称RMI)是Java平台提供的一种用于实现分布式应用的技术。它允许对象在不同的JVM之间通过网络相互调用对方的方法,就像调用本地对象一样。通过RMI,开发人员可以轻松构建...
这个简单的例子展示了RMI的基本使用方式。实际应用中,可能会涉及到更复杂的网络交互、多线程、安全性控制等话题。理解RMI的工作原理和实践,对于开发分布式Java应用至关重要。同时,由于RMI依赖于Java序列化,因此...
通过RMI,一个Java程序能够调用位于另一台计算机上的Java对象的方法,就好像它们在同一台机器上一样。这种能力使得RMI成为构建分布式系统的强大工具之一。 ### Java分布式对象模型 在RMI中,通常涉及两个独立的...
4. **客户端调用**:在客户端,创建一个主类(如`RmiClient.java`),使用`Naming.lookup()`获取远程对象的引用,然后调用其方法: ```java MyRemoteInterface remote = (MyRemoteInterface) Naming.lookup("rmi:/...
这个简单的例子展示了Java RMI的基本用法。通过RMI,开发者可以在网络环境中透明地调用远程对象的方法,使得分布式系统的开发变得简单。然而,实际应用中还需要考虑线程安全、异常处理、安全性、性能优化等复杂问题...
了解并掌握这些基本概念和操作,你就可以开始尝试"java RMI简单例子",逐步深入理解RMI的使用。在实践中,你可以创建一个简单的远程服务,例如一个远程计算器,体验RMI如何让不同JVM上的代码协同工作。这将有助于你...
- JRMP(Java Remote Message Protocol):这是Java RMI的原始实现,它使用Java特有的协议进行通信。 - RMI-IIOP(RMI over IIOP):RMI与CORBA(Common Object Request Broker Architecture)的结合,允许RMI系统与...
Java RMI(Remote Method Invocation,远程方法调用)是Java平台提供的一种用于分布式计算的技术,它允许一个Java对象调用另一个在不同 JVM...通过实践这个简单的示例,你可以更好地掌握Java RMI的工作原理和使用方法。
这个"java RMI入门例子"将带你深入理解RMI的工作原理和主要组件。 RMI的核心概念包括: 1. **远程接口**:这是定义远程方法的接口,通常继承自java.rmi.Remote。这些方法声明抛出java.rmi.RemoteException,表示...
4. **注册远程对象**:在服务器端创建`HelloWorldImpl`的实例,然后使用`java.rmi.Naming.bind()`方法将其绑定到RMI注册表的一个特定名称。 5. **导出远程对象**:使用`java.rmi.server.UnicastRemoteObject.export...
描述中提到的"java rmi例子"表明其中可能包含了一个或多个实际的RMI应用实例,这对于学习和理解RMI的工作原理非常有帮助。 首先,让我们详细了解Java RMI的核心概念和组件: 1. **远程接口(Remote Interface)**...
在这个"java简单RMI会议功能实现"的例子中,我们将探讨如何构建一个基于RMI的分布式会议议程服务,提供会议查询、增加和删除的接口。 首先,让我们了解RMI的基本组件和工作原理: 1. **远程接口(Remote Interface...
学习这个简单的RMI示例,可以帮助你了解如何在Java中设置和使用RMI,包括创建远程接口,实现远程对象,注册到RMI注册表,以及在客户端进行远程方法调用。这将为你构建更复杂的分布式系统打下基础。
Java Remote Method Invocation(RMI)是Java平台中用于分布式计算的一种技术。它允许Java对象在不同的JVM(Java虚拟机)之间进行交互,仿佛它们都在同一个JVM内运行。RMI使得开发分布式应用程序变得更加简单,尤其...
Spring Remote Method Invocation (RMI) 是Java平台上的一个远程对象调用框架,它允许你在分布式环境中调用对象...通过理解并实践这个小例子,你将能够更好地掌握Spring RMI的用法,为构建更复杂的分布式系统打下基础。
通过这个小例子,我们可以学习到Spring RMI的基本用法,理解其工作原理,这对于构建分布式系统非常有帮助。实践中,还可以进一步探索如何结合Spring的其他特性,如AOP和事务管理,来增强RMI应用的功能和健壮性。
本实例旨在提供一个易于理解的Java RMI应用,帮助初学者快速掌握其基本概念和使用方法。完整的例子包括以下几个关键组成部分: 1. **接口定义**:在RMI中,远程对象需要实现一个接口,这个接口定义了可供远程调用的...
在"Java RMI Calculator"的例子中,我们可以想象有一个计算器应用,其中包含一个定义了加、减、乘、除等操作的远程接口`Calculator`。实现`Calculator`接口的远程对象可能部署在服务器JVM上,而客户端则通过RMI调用...