前段时间已经学了点RMI的知识,当时写了一个小例子,没出什么错误,所以今天在看RMI竟然没留下什么印象,下面写一下我对Java RMI学习的一点心得,以供以后查询,当然我们以一个小例子为基础:
1,我用的是eclipse3.1.1所以就下载了RMI的插件RMI Plug-in for Eclipse version 2.0,该网站上有个Demo,很不错适合入门。
2,新建一个java project ,新建一个 Remote Interface接口类printcommon,
public interface printcommon extends Remote {
public String print() throws RemoteException;
}
当然在 eclipse下会自动编译,如果在命令窗口内要用javac编译。
3 新建一个 java project ,新建一个类ServerImpl,作为服务器端,实现上面定义的接口。在构建路径的project选项要选上上面接口的project
public class serverImp extends UnicastRemoteObject implements printcommon {
protected serverImp() throws RemoteException {
super(); / /这个调用继承类的构造函数一定要写的,因为它用来建立客户端和服务器端的连接。
}
public static void main(String[] args) {
Registry r;
try {
r = LocateRegistry.getRegistry();
r.bind("print",new serverImp()); //这个要注意,左边的参数是个字符串,只是右边新建对象的别名,供客户程序查找远程对象用的,有的人把它当成一个地址了,在两台机子部署的时候,它也不代表地址,有人写了一个博客就是代表地址,误导了我调试了好久。
System.out.print("server is ready");
} catch (Exception e) {
// TODO 自动生成 catch 块
e.printStackTrace();
}
}
public String print() throws RemoteException { //方法的实现
// TODO 自动生成方法存根
return "HelloWorld";
}
}
4 在eclipse下,点击该project的右键,在RMI选项中选择产生stub.class,具体步骤可以看demo.如在在命令行下,先编译后键入rmic ServerImpl。
5. 新建java project,新建一个类,作为客户端。当然也要加入接口的project,
public class client {
public static void main(String[] args) {
System.setSecurityManager(new RMISecurityManager());
try {
printcommon printer=(printcommon) Naming.lookup("rmi://202.193.86.31:1099/print");//查找在服务器端要调用的对象,格式是rmi://服务器地址/ 对象别名, 端口号可以省略,默认是1099。
System.out.println(printer.print());
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
} catch (NotBoundException e) {
e.printStackTrace();
}
}
}
编译保存。
6,在服务器端 键入 >rmiregistry,在eclipse 下在插件下运行就行了。然后以RMI应用程序的形式运行服务器端的程序,在codebase里写入地址,如果在本地做试验的话,就点击compute from classpath,如果在两台机子上部署的话,这里要自己键入http://地址:8080/example/Hello.jar ,example是我在Tomcat服务器下一个Web项目名,Hello.jar是接口类printcommon和stub.class的打包,因为客户端访问的是stub.class,所以只需要把它们两打包就行了,可以在project下导出。客户端在查找远程对象时,就会在这个地址下寻找。当然你要开启tomcat。还要设置host地址。设置好后就运行服务器端了。如在命令行下,键入> java -Djava.security.policy=policy.txt ServerImp。
7,运行客户端,以RMI应用程序运行,在对话框内要产生安全文件。运行OK了。在命令行键入> java -Djava.security.policy=policy.txt CalculatorClient
改变端口号: java.rmi.registry.LocateRegistry.createRegistry(2005);
分享到:
相关推荐
Java RMI(Remote Method Invocation)技术是Java平台中用于分布式计算的一种机制,它允许一个Java对象调用远程...通过这个项目,开发者可以学习到如何使用RMI创建分布式应用,以及如何处理并发和网络通信等问题。
学习和理解Java RMI对于开发分布式Java应用至关重要,它可以帮助你构建可扩展、高性能的应用程序,尤其适用于服务器集群和云环境。通过实践提供的"rmi"代码示例,你可以深入理解RMI的工作原理,并掌握如何在实际项目...
本文档是关于Java远程方法调用...整体而言,这份教程为Java RMI的初学者提供了一个系统的学习路径,并且详细解释了Java RMI工作原理和组件构成。尽管教程的内容较旧,对于学习Java RMI的基本知识和概念仍有很大的帮助。
Java RMI(远程方法调用)是Java编程语言中的一项核心技术,自JDK 1.1版本起就被引入...虽然现代的Java框架如Spring、EJB等提供了更高级别的分布式服务,但理解RMI的基本原理对于深入学习Java分布式系统仍然是必要的。
最近在学习代理模式,用到了java rmi远程调用,包含服务端和客户端,之前一直没有接触过,学习了java rmi远程调用,一方面可以了解代理模式,一方面熟悉java低层的远程
学习Java RMI时,你需要理解以下关键概念: 1. **远程接口**:这是定义了远程方法的接口,所有远程方法都必须标记为`remote`和`throws java.rmi.RemoteException`。 2. **远程对象**:实现了远程接口的类,它们的...
这个"java rmi HelloWorld版(源码)"的压缩包文件提供了一个简单的RMI应用示例,帮助开发者了解和学习RMI的基本原理和使用。 RMI的核心概念包括: 1. **远程接口(Remote Interface)**:这是定义远程方法的接口...
学习Java RMI需要理解Java的序列化机制、多线程以及网络编程基础。 参考链接:[ITEE博客 - TianmaoTalk](https://tianmaotalk.iteye.com/blog/852330) 在提供的压缩包`RMITest`中,可能包含了实现RMI的示例代码,...
这个教程“Rmi.rar”显然包含了关于如何使用Java RMI实现不同方式的实例,这些实例可能是精心设计和测试的,旨在帮助学习者深入理解RMI的工作原理。 RMI的核心概念包括: 1. **远程接口(Remote Interface)**:...
通过分析这些文件,你可以学习到如何创建、配置和运行一个完整的RMI应用程序,这对于理解和应用Java的分布式计算能力非常有帮助。同时,这也是一个很好的实践项目,可以帮助你加深对RMI工作原理的理解。
Java RMI,全称为Java Remote Method Invocation,是Java平台中用于远程对象调用的技术。它允许Java对象在不同的Java虚拟机之间进行通信,仿佛它们在同一个...尽管如此,了解RMI仍然是学习Java分布式计算的重要一环。
通过“rmi.rar”中的源代码,你可以学习如何定义和实现远程接口,创建和启动服务器,以及编写客户端代码进行远程调用。此外,还可能涉及到异常处理、安全配置、RMI优化等高级话题。通过深入理解并实践这些示例,你将...
描述中提到的"java rmi例子"表明其中可能包含了一个或多个实际的RMI应用实例,这对于学习和理解RMI的工作原理非常有帮助。 首先,让我们详细了解Java RMI的核心概念和组件: 1. **远程接口(Remote Interface)**...
学习和理解Java RMI,你需要掌握如何创建远程接口和实现,如何启动RMI服务器,如何在客户端进行远程对象的查找和调用,以及如何处理可能出现的网络异常。此外,对于序列化和网络通信的基础知识也是必不可少的。通过...
通过"java RMI demo"的学习,开发者可以掌握如何创建、注册远程对象,以及如何在客户端进行调用。理解RMI的工作原理和配置,对于开发分布式Java应用至关重要。同时,这也涉及到了网络编程、多线程和异常处理等相关...
在"基于Java RMI的C/S编程实验"中,学生会学习如何创建远程接口,注册远程对象,以及如何在客户端透明地调用远程方法。 实验中包含的两个文件名 "HelloSwing" 和 "CityInformation" 提示我们,实验可能涉及到图形...
Java RMI(Remote Method Invocation,远程...使用这个“java_rmi.zip”中的资源,你可以学习如何设置RMI环境,编写远程接口和实现,以及创建和调用远程对象。同时,了解相关的最佳实践和安全注意事项也是十分重要的。
学习这个简单的RMI示例,可以帮助你了解如何在Java中设置和使用RMI,包括创建远程接口,实现远程对象,注册到RMI注册表,以及在客户端进行远程方法调用。这将为你构建更复杂的分布式系统打下基础。
Java 远程方法调用(Java RMI,Remote Method Invocation)是Java平台提供的一种用于构建分布式应用程序的...学习和理解Java RMI,可以帮助开发者构建可扩展的、跨网络的分布式应用程序,是Java开发者必备的一项技能。
分布式Java RMI(Remote Method Invocation)技术是一种在Java平台中实现分布式计算的重要工具,它允许一个对象...通过学习和理解这个项目,开发者可以深化对Java RMI的理解,以及如何在实际项目中应用分布式计算技术。