频道直达 - 专题 - 新闻 - 技巧 - 组网 - 开发 - 安全 - web编程 - 图像 - 操作系统 - 数据库 - 教育 - 旅游 - 健康 - 时尚 - 驱动 - 软件 - 游戏 - 多媒体 - ERP - 讨论组

使用WebService 和RMI远程协作

来源:收集整理 作者: 出处:巧巧读书 2007-12-13 进入讨论组


   系统要求有Smart device对远程的JVM2里的程序控制,所以我们引入了WebService,通过WebService间接调用JVM2里的东西,WebSerivce本身运行在JVM1,JVM1和JVM2可以在不同机器上,这里demo程序是在一台机器上运行的。

   WebService在这里既是SmartDevice的Server端,又是RMI的Client端。RMI的Server端在JVM2的App里作为一部分服务存在。

三、代码分解,下面我们开始demo这个协作的代码

3.1 首先我们抽象一个RMI的Interface

使用WebService 和RMI远程协作(图二) package  cn.heapstack.rmi.interfaces;
使用WebService 和RMI远程协作(图二)
使用WebService 和RMI远程协作(图二) import  java.rmi.Remote;
使用WebService 和RMI远程协作(图二) import  java.rmi.RemoteException;
使用WebService 和RMI远程协作(图二) import  java.util.Date;
使用WebService 和RMI远程协作(图二)
使用WebService 和RMI远程协作(图二) public   interface  IBridge  extends  Remote
使用WebService 和RMI远程协作(图三)使用WebService 和RMI远程协作(图四) 使用WebService 和RMI远程协作(图五) {
使用WebService 和RMI远程协作(图六)     public  Date getDate()  throws  RemoteException;
使用WebService 和RMI远程协作(图六)    
使用WebService 和RMI远程协作(图六)     public  String getOtherInfo()  throws  RemoteException;
使用WebService 和RMI远程协作(图七)}
使用WebService 和RMI远程协作(图二)

简单的接口,一个是获得时间的,一个是获取随便什么消息的接口

3.2实现RMI的Server端

使用WebService 和RMI远程协作(图二) package  cn.heapstack.rmi.server;
使用WebService 和RMI远程协作(图二)
使用WebService 和RMI远程协作(图二) import  java.rmi.RemoteException;
使用WebService 和RMI远程协作(图二) import  java.rmi.server.UnicastRemoteObject;
使用WebService 和RMI远程协作(图二) import  java.util.Date;
使用WebService 和RMI远程协作(图二)
使用WebService 和RMI远程协作(图二) import  cn.heapstack.rmi.interfaces.IBridge;
使用WebService 和RMI远程协作(图二)
使用WebService 和RMI远程协作(图二) public   class  BriderImpl  extends  UnicastRemoteObject  implements  IBridge
使用WebService 和RMI远程协作(图三)使用WebService 和RMI远程协作(图四) 使用WebService 和RMI远程协作(图五) {
使用WebService 和RMI远程协作(图六)
使用WebService 和RMI远程协作(图六)     protected  BriderImpl()  throws  RemoteException
使用WebService 和RMI远程协作(图八)使用WebService 和RMI远程协作(图九)     使用WebService 和RMI远程协作(图五) {
使用WebService 和RMI远程协作(图六)         super ();
使用WebService 和RMI远程协作(图十)    }
使用WebService 和RMI远程协作(图六)
使用WebService 和RMI远程协作(图六)     private   static   final   long  serialVersionUID  =   - 2194578051853930272L ;
使用WebService 和RMI远程协作(图六)
使用WebService 和RMI远程协作(图六)     public  Date getDate()  throws  RemoteException
使用WebService 和RMI远程协作(图八)使用WebService 和RMI远程协作(图九)     使用WebService 和RMI远程协作(图五) {
使用WebService 和RMI远程协作(图六)         return   new  Date( 2008 , 5 , 10 );
使用WebService 和RMI远程协作(图十)    }
使用WebService 和RMI远程协作(图六)
使用WebService 和RMI远程协作(图六)     public  String getOtherInfo()  throws  RemoteException
使用WebService 和RMI远程协作(图八)使用WebService 和RMI远程协作(图九)     使用WebService 和RMI远程协作(图五) {
使用WebService 和RMI远程协作(图六)         return   " This is the message from the jvm, path info:  "   +  BriderImpl. class .getResource( " / " ).getPath();
使用WebService 和RMI远程协作(图十)    }
使用WebService 和RMI远程协作(图六)
使用WebService 和RMI远程协作(图七)}
使用WebService 和RMI远程协作(图二)
使用WebService 和RMI远程协作(图二) package  cn.heapstack.rmi.server;
使用WebService 和RMI远程协作(图二)
使用WebService 和RMI远程协作(图二)
使用WebService 和RMI远程协作(图二) import  java.rmi.Naming;
使用WebService 和RMI远程协作(图二) import  java.rmi.registry.LocateRegistry;
使用WebService 和RMI远程协作(图二)
使用WebService 和RMI远程协作(图二) import  cn.heapstack.rmi.interfaces.IBridge;
使用WebService 和RMI远程协作(图二)
使用WebService 和RMI远程协作(图二) public   class  RmiServer 
使用WebService 和RMI远程协作(图三)使用WebService 和RMI远程协作(图四) 使用WebService 和RMI远程协作(图五) {
使用WebService 和RMI远程协作(图六)
使用WebService 和RMI远程协作(图六)     public   static   void  main(String[] args)
使用WebService 和RMI远程协作(图八)使用WebService 和RMI远程协作(图九)     使用WebService 和RMI远程协作(图五) {
使用WebService 和RMI远程协作(图六)          try    
使用WebService 和RMI远程协作(图八)使用WebService 和RMI远程协作(图九)           使用WebService 和RMI远程协作(图五) {    
使用WebService 和RMI远程协作(图六)             LocateRegistry.createRegistry( 1099 );    
使用WebService 和RMI远程协作(图六)             IBridge bridge  =   new  BriderImpl();
使用WebService 和RMI远程协作(图六)             Naming.rebind( " bridge " , bridge);    
使用WebService 和RMI远程协作(图六)             
使用WebService 和RMI远程协作(图六)             System.out.println( " RMI Server is ready. " );
使用WebService 和RMI远程协作(图十)          }     
使用WebService 和RMI远程协作(图六)           catch  (Exception e)    
使用WebService 和RMI远程协作(图八)使用WebService 和RMI远程协作(图九)           使用WebService 和RMI远程协作(图五) {    
使用WebService 和RMI远程协作(图六)             System.out.println( " RMI Server failed:  "   +  e);    
使用WebService 和RMI远程协作(图十)          }     
使用WebService 和RMI远程协作(图六)
使用WebService 和RMI远程协作(图十)    }
使用WebService 和RMI远程协作(图七)}
使用WebService 和RMI远程协作(图二)


3.3我们可以先写个RMI的Client测试一下
使用WebService 和RMI远程协作(图二) package  cn.heapstack.rmi.client;
使用WebService 和RMI远程协作(图二)
使用WebService 和RMI远程协作(图二) import  java.rmi.Naming;
使用WebService 和RMI远程协作(图二)
使用WebService 和RMI远程协作(图二) import  cn.heapstack.rmi.interfaces.IBridge;
使用WebService 和RMI远程协作(图二)
使用WebService 和RMI远程协作(图二) public   class  RmiClient
使用WebService 和RMI远程协作(图三)使用WebService 和RMI远程协作(图四) 使用WebService 和RMI远程协作(图五) {
使用WebService 和RMI远程协作(图六)
使用WebService 和RMI远程协作(图八)使用WebService 和RMI远程协作(图九)     /** */ /**
使用WebService 和RMI远程协作(图六)     *  @param  args
使用WebService 和RMI远程协作(图十)      */
使用WebService 和RMI远程协作(图六)     public   static   void  main(String[] args)
使用WebService 和RMI远程协作(图八)使用WebService 和RMI远程协作(图九)     使用WebService 和RMI远程协作(图五) {
使用WebService 和RMI远程协作(图六)        IBridge bridge;
使用WebService 和RMI远程协作(图六)         try
使用WebService 和RMI远程协作(图八) 使用WebService 和RMI远程协作(图九)         使用WebService 和RMI远程协作(图五) {
使用WebService 和RMI远程协作(图六)            bridge  =  (IBridge) Naming.lookup( " bridge " );
使用WebService 和RMI远程协作(图六)        
使用WebService 和RMI远程协作(图六)        
使用WebService 和RMI远程协作(图六)            System.out.println( bridge.getDate() );
使用WebService 和RMI远程协作(图十)        }
使用WebService 和RMI远程协作(图六)         catch (Exception e)
使用WebService 和RMI远程协作(图八)使用WebService 和RMI远程协作(图九)         使用WebService 和RMI远程协作(图五) {
使用WebService 和RMI远程协作(图六)            e.printStackTrace();
使用WebService 和RMI远程协作(图十)        }
使用WebService 和RMI远程协作(图六)
使用WebService 和RMI远程协作(图十)    }
使用WebService 和RMI远程协作(图六)
使用WebService 和RMI远程协作(图七)}
使用WebService 和RMI远程协作(图二)


      由于在本机上,省略了ip什么的,如果对这段代码不是很懂,建议看后面的参考资料
      测试方法,先运行Server,再运行Client,不出以外,你能看到2008年5月10号。

浏览地址: http://www.qqread.com/ajax/u307338.html进入讨论组讨论。
收藏此文】【 】【打印】【关闭
较早的文章:Ajax简介

较新的文章:关于Xdoclet生成hibernate映射文件
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
巧巧读书宗旨
相关专题
讨论组问题推荐
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
巧巧电脑频道编辑信箱  告诉我们您想看的专题或文章