rmi简单实例1

一、准备安装包

       Eclipse的下载地址这里就不说了,可以参考我的blog中《Eclipse开发struts指南》一文。这里提供RMI Plugin for Eclipse 的下载地址:
    http://www.genady.net/rmi/v16/index.html?/rmi/v16/main.html&MAIN16

         破解版下载地址:http://www.inspiresky.com/bbs/dispbbs.asp?boardID=13&ID=2160&page=1

       我们下载适合eclipse3.1的1.6.5版本,得到net.genady.rmi_1.6.5.zip安装包。

       这里使用的是Eclipse3.1版本,如果是2.x版本的请下载1.6.0版本的安装包。同时需要JDK1.4.2以上版本的支持,这里不讲了,请自行下载安装。
二、安装插件包


       解压缩安装包net.genady.rmi_1.6.5.zip,将解压后得到的features和plugins文件夹拷贝至Eclipse安装根目录下,覆盖原有文件夹。

       启动Eclipse(如果已经启动,请重新启动Eclipse),这时在工具栏上会发现多了一个工具图标,里面有Registry的管理选项,这个就是RMI Registry的管理器。说明已经安装成功了。

三、设置开发环境

       在安装好插件包后,我们来设置RMI开发环境。

       启动Eclipse,在菜单window->preferences对话框中,选中左边树菜单java->rmi,右边窗口会出现RMI Plugin的默认设置信息。

       最上面的Path to RMI registry设置java的RMI Registry的路径,如这里设置的是C:\Program Files\Java\jdk1.5.0_05\bin\rmiregistry.exe,一般不用管它。下面的一个框是RMI的服务端口,默认是1099,这个类似tomcat的服务端口8080一样,链接的时候需要找到对应的端口才能链接上。其实RMI的最低层是socket。

       这里需要特别指出的是RMI Plugin是个收费的Eclipse插件,有15天的免费试用期。而RMI属性中最大的窗口就是填使用授权信息的。我的网站论坛提供破解版本的下载供个人研究之用。


       开发环境到这里也只是基本的设计完成,其他的还要在具体的项目中进行设置,下面我们就开发一个简单的演示项目。


四、开发演示项目


       这里偷一下懒,引用别人的一篇文章的实例,大家可以比照在eclipse中创建该项目;也可以顺便了解一下RMI的基本机制,和不用工具的开发方法。
       文章地址:
   http://www.inspiresky.com/bbs/dispbbs.asp?boardID=22&ID=1687&page=1

       这里采用第五楼文章中的例子。如果你对RMI没有什么太多了解请一定先看此文章。      

       这里我们一步一步来在eclipse中创建我们的演示项目:

       1、启动eclipse,新建项目

       菜单file->new->projects->java projects,点击next,projects name 为RMITest。其他默认,点击next,点击finish。OK,新项目建成。


       2、新建服务器包

       左边树中右键项目RMITest,new->package,新建包com.inspiresky.rmi.server。


       3、创建远程对象接口类

       右键点击刚才创建的包,new->Interface,新建接口I_Hello。然后编辑我们新建的接口,代码如下所示:     

       package com.inspiresky.rmi.server;


       import java.rmi.Remote; 

       import java.rmi.RemoteException;


       /*

      * Junsan

      */

       public interface I_Hello extends Remote{


              public String SayHello() throws RemoteException;

       }

     4、定义一个实现该接口的类

       右键点击刚才创建的包,new->class,新建类文件Hello。然后编辑我们新建的接口,代码如下所示:     

       package com.inspiresky.rmi.server;


       import java.rmi.RemoteException;

       import java.rmi.server.UnicastRemoteObject;

       /*

      * Junsan

      */

       public class Hello extends UnicastRemoteObject implements I_Hello{      

              private static final long serialVersionUID = -8868676826752697887L;


              public Hello() throws RemoteException

           {

           }


           public String SayHello()     //这个是实现I_Hello接口的方法

           {

                return "Hello world !!";

           }

       }      

       好了到此,已经完成了主要服务对象的编写工作。      

       5、生成程序的存根文件

       右键点击工程名称RMITest,RMI->Enable Stubs Generations。选中后,在我们工程文件夹RMITest/bin下的相应的包中com\inspiresky\rmi\server下就自动生成了Hello_Stub.class类。


       6、创建RMI服务器类

       同4中的过程,新建类RMI_Server,并编辑器代码为:     
   package com.inspiresky.rmi.server;


       import java.rmi.Naming;

       /*
   * Junsan
   */

       public class RMI_Server {


              public RMI_Server() {


              }


              public static void main(String[] args) {

                     try {

                            Hello hello = new Hello();

                            Naming.rebind("RMI_Hello", hello);

                            System.out.println("=== Hello server Ready === ");

                     } catch (Exception exception) {

                            exception.printStackTrace();

                     }

              }

       }


       7、新建客户端包

       方法同2,包名com.inspiresky.rmi.client。


       8、创建客户端

       在新建的包中同4过程,创建类RMI_Client。并编辑代码如下:     

       package com.inspiresky.rmi.client;

       import java.rmi.Naming;

       import com.inspiresky.rmi.server.I_Hello;


       /*

      * Junsan

      */

       public class RMI_Client {


              public RMI_Client() {

                     super();

              }


              public static void main(String[] args) {

                     try {


                            I_Hello hello = (I_Hello) Naming.lookup("RMI_Hello");

                            System.out.println(hello.SayHello());

                     } catch (Exception e) {

                            e.printStackTrace();


                     }

              }


       }


       OK,到这里我们就可以准备调试运行我们的程序了。


五、运行调试项目

       在运行之前需要进行一下设置,否则,会提示错误信息,说找不到stub类。

       1、启动RMIRegistry

       Eclipse菜单window->show view->others,在弹出菜单中选择RMI Views->RMI Registry Inspector,这是会多出来一个窗口,
       这里可以显示已经注册的RMI应用。

       点击工具条上的RMI Plugin图标,在菜单中选择Start Local Registry。


       注意这个只需要启动一次,除非你把它关掉。


       2、配置运行RMI服务


       右键点击左边树中的RMI_Server.java文件,菜单Debug As ->RMI Application。在弹出对话框中找到RMI Properties标签页。

       这时这里前两项显示红色。
    选中java.security.police项的value框,点击选择按钮会出现文件选择对话框,
    我们这里设置成C:\Program Files\Java\jre1.5.0_05\lib\security\java.security。就是jre的安全策略配置文件
    ,要选择成泥当前用的jdk的侧略文件。

       选中第二项java.rmi.server.codebase的value项,这里选择编译后类包所在的文件夹。
       点击选择按钮->add按钮->pick from workspace,选择当前工程RMITest的bin文件夹。这里是file:/E:/workspace/RMITest/bin/。
      点击apply按钮。
       点击debug按钮。
       这时Eclipse的console窗口中出现
       === Hello server Ready ===
  表示RMI服务已经运行。  
3、设置调试信息
打开Hello.java文件,在      
     return "Hello world !!";      
       处设置断点。
4、运行客户端,调试程序
工程树中,右键点击RMI_Client.java文件,Run As -> Java Application。
我们点击后,窗口一闪而过,停止后,会发现光标已经停止在我们设定断点的地方。这里程序没有错误,我们按F6键继续,会进入程序下一步的运行文件,调试的时候就是这样子一步一步调试下去。这里我们按F8直接运行完代码,在console窗口中会显示
Hello world !!
表示程序已经运行成功。
这里只是抛砖引玉,拿一个很小的例子来说明在Eclipse中的调试方法,有很多技巧需要自己慢慢去琢磨,因为很碎,在这里就不说了。欢迎大家来我的网站http://www.inspiresky.com 可以去论坛交流或者我的blog:http://blog.csdn.net/junnef找我交流。

你可能感兴趣的:(java,eclipse,应用服务器,项目管理,asp.net)