<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    雪湖小札@blogjava

    心情與技術文檔同行 http://hi.baidu.com/jingleq

    BlogJava 首頁 新隨筆 聯系 聚合 管理
      24 Posts :: 2 Stories :: 4 Comments :: 0 Trackbacks
      小試了一把用groovy來寫java的rmi,體驗到了groovy對java的兼容性,無論從代碼上還是功能上!真的可以理groovy就是腳本化的java,groovy就是java擴衡ruby on rails的武器!
      參考了網上的經典《Java RMI 入門》,我寫了兩個groovy文件。因為想仿造java的文件管理方式,所以我把接口寫成一個groovy文件,實現類寫成一個groovy文件。雖然單個groovy文件名可以和里面的類名不一樣,但是如果出現不一樣的,在import關聯的時候就會出現問題。
    F:\grails_apps\groovy\com\c2\HelloIn.groovy
    package com.c2;

    import java.rmi.*;
    interface HelloIn extends java.rmi.Remote {
     String sayHello() 
    throws RemoteException;
    }
    F:\grails_apps\groovy\com\c2\Hello.groovy
    package com.c2;

    import java.rmi.*;
    import java.net.*;
    import java.rmi.registry.*;
    import java.rmi.server.*;

    class Hello extends java.rmi.server.UnicastRemoteObject implements HelloIn {
        Hello() 
    throws RemoteException{
            
    super();
        }

         String sayHello() 
    throws RemoteException{
          
    return "Hello,World!";
         }
     
         
         
    static void main(args){
      
    try{
          Hello h
    =new Hello();
          Naming.rebind(
    "hello",h);
          println 
    "ready ";
       }
     catch(Exception e){
               e.printStackTrace();
       }

      }

    }
      因為在寫rmi的時候需要通過命令從.class文件中生成*_Stub.class文件,所以必須把groovy文件通過groovyc編譯成.class文件,再通過命令rmic **來生成*_Stub.class。另外一個要運行groovy生成的.class文件需要加入groovy的相關包。為了使執行過程自動化,使用了ant來處理。
      在開啟rmi的注冊服務之后就可以通過ant來執行rmi了。開戶rmi服務命令:rmiregistry
      在執行rmi的時候關鍵是給jvm加個參數-Djava.rmi.server.codebase=file:/F:\grails_apps\groovy\/,注意,網上挺多-Djava.server.codebase的寫法,這種寫法在我的試驗中不能通過。
    F:\grails_apps\groovy\build.xml
    <project name="mygroovy-build" default="run">
        
    <property environment="env"/>
        
    <path id="groovy.classpath">
            
    <fileset dir="C:/groovy-1.0/lib/"/>
        
    </path>
        
    <taskdef name ="groovyc" classname ="org.codehaus.groovy.ant.Groovyc" classpathref="groovy.classpath"/>
        
    <target name="compile" description="compile groovy to bytecode">
            
    <mkdir dir="classes"/>
            
    <groovyc destdir="classes" srcdir="." includes="com/c2/HelloIn.groovy,com/c2/Hello.groovy" classpathref="groovy.classpath">
            
    </groovyc>
        
    </target>
        
    <target name="mksub" depends="compile" description="make the sub">
            
    <rmic classname="com.c2.Hello" base="F:/grails_apps/groovy/classes/"/>
        
    </target>
        
    <target name="run" depends="mksub" description="run the compiled class">
            
    <java classname="com.c2.Hello" fork="true">
                
    <classpath refid="groovy.classpath"/>
                
    <classpath location="classes"/> 
                
    <jvmarg value="-Djava.rmi.server.codebase=file:/F:\grails_apps\groovy\/" />
            
    </java>
        
    </target>
    </project>
      可能會遇到編譯時的lib問題,如果缺少什么lib就用set classpath吧~`這個問題我也有點疑惑,在另一臺機器上使用<path id="groovy.classpath"><fileset dir="C:/groovy-1.0/lib/"/></path>不起作用,只能在控制臺上事先用set classpath來加下包。
    posted on 2007-07-19 10:43 csnowfox 閱讀(1329) 評論(1)  編輯  收藏

    Feedback

    # re: 跑在groovy上的rmi 2007-07-21 11:47 山風小子
    Groovy可以充分利用Java世界中的一切資源,這也是Groovy的一大優勢 :)  回復  更多評論
      


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲国产精品嫩草影院在线观看 | 一级毛片直播亚洲| a级日本高清免费看| 国产裸模视频免费区无码| 亚洲AV无码无限在线观看不卡 | 91视频免费观看高清观看完整| 亚洲福利在线播放| 免费网站观看WWW在线观看| 亚洲综合色成在线播放| 中文字幕无线码中文字幕免费| 黑人大战亚洲人精品一区 | 亚洲国产人成网站在线电影动漫| 在线观看肉片AV网站免费| 亚洲久本草在线中文字幕| 91精品啪在线观看国产线免费| 亚洲美女在线观看播放| 大地资源在线观看免费高清| 亚洲成在人线aⅴ免费毛片| 又色又污又黄无遮挡的免费视 | 亚洲国产日韩精品| 日本视频免费在线| jzzjzz免费观看大片免费| 亚洲热妇无码AV在线播放| 222www在线观看免费| 亚洲无mate20pro麻豆| 4hu四虎免费影院www| 国产亚洲高清不卡在线观看| 欧洲精品99毛片免费高清观看| 亚洲人成7777影视在线观看| 日韩一级在线播放免费观看| 永久免费无码网站在线观看个| 亚洲AV无码成人精品区天堂 | 中文字幕免费高清视频| 亚洲 欧洲 日韩 综合在线| 免费很黄很色裸乳在线观看| 任你躁在线精品免费| 久久精品国产亚洲AV蜜臀色欲| 亚洲 综合 国产 欧洲 丝袜| 久久免费国产视频| 亚洲中文字幕无码久久| 一本色道久久综合亚洲精品高清|