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

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

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

    雪湖小札@blogjava

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

    BlogJava 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
      24 Posts :: 2 Stories :: 4 Comments :: 0 Trackbacks
      小試了一把用groovy來(lái)寫(xiě)java的rmi,體驗(yàn)到了groovy對(duì)java的兼容性,無(wú)論從代碼上還是功能上!真的可以理groovy就是腳本化的java,groovy就是java擴(kuò)衡ruby on rails的武器!
      參考了網(wǎng)上的經(jīng)典《Java RMI 入門(mén)》,我寫(xiě)了兩個(gè)groovy文件。因?yàn)橄敕略靔ava的文件管理方式,所以我把接口寫(xiě)成一個(gè)groovy文件,實(shí)現(xiàn)類(lèi)寫(xiě)成一個(gè)groovy文件。雖然單個(gè)groovy文件名可以和里面的類(lèi)名不一樣,但是如果出現(xiàn)不一樣的,在import關(guān)聯(lián)的時(shí)候就會(huì)出現(xiàn)問(wèn)題。
    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();
       }

      }

    }
      因?yàn)樵趯?xiě)rmi的時(shí)候需要通過(guò)命令從.class文件中生成*_Stub.class文件,所以必須把groovy文件通過(guò)groovyc編譯成.class文件,再通過(guò)命令rmic **來(lái)生成*_Stub.class。另外一個(gè)要運(yùn)行g(shù)roovy生成的.class文件需要加入groovy的相關(guān)包。為了使執(zhí)行過(guò)程自動(dòng)化,使用了ant來(lái)處理。
      在開(kāi)啟rmi的注冊(cè)服務(wù)之后就可以通過(guò)ant來(lái)執(zhí)行rmi了。開(kāi)戶(hù)rmi服務(wù)命令:rmiregistry
      在執(zhí)行rmi的時(shí)候關(guān)鍵是給jvm加個(gè)參數(shù)-Djava.rmi.server.codebase=file:/F:\grails_apps\groovy\/,注意,網(wǎng)上挺多-Djava.server.codebase的寫(xiě)法,這種寫(xiě)法在我的試驗(yàn)中不能通過(guò)。
    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>
      可能會(huì)遇到編譯時(shí)的lib問(wèn)題,如果缺少什么lib就用set classpath吧~`這個(gè)問(wèn)題我也有點(diǎn)疑惑,在另一臺(tái)機(jī)器上使用<path id="groovy.classpath"><fileset dir="C:/groovy-1.0/lib/"/></path>不起作用,只能在控制臺(tái)上事先用set classpath來(lái)加下包。
    posted on 2007-07-19 10:43 csnowfox 閱讀(1329) 評(píng)論(1)  編輯  收藏

    Feedback

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


    只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 91亚洲一区二区在线观看不卡| 日本高清免费网站| 自拍偷自拍亚洲精品情侣| 无码天堂va亚洲va在线va| 免费无码一区二区三区蜜桃大| 亚洲欧美中文日韩视频| 久久久久久国产精品免费免费| 亚洲综合色7777情网站777| 嫖丰满老熟妇AAAA片免费看| 亚洲国产成人精品无码一区二区 | 中文字幕在亚洲第一在线| 黄色三级三级免费看| 亚洲国产激情一区二区三区| jizz免费在线影视观看网站| 国产亚洲精品国看不卡| 亚洲精品黄色视频在线观看免费资源| 亚洲男人的天堂在线va拉文| 巨胸喷奶水视频www免费视频| 国产亚洲成av人片在线观看| 99re6热视频精品免费观看| 国产成人精品日本亚洲11| 国产成人3p视频免费观看 | 免费观看成人久久网免费观看| 亚洲国产综合91精品麻豆| 久久精品亚洲AV久久久无码| 国产高清在线精品免费软件| 乱淫片免费影院观看| 亚洲国产精品久久久久婷婷老年| 69堂人成无码免费视频果冻传媒| 国产亚洲精品无码拍拍拍色欲| 免费网站观看WWW在线观看| 亚洲精品午夜在线观看| 国产精品久久香蕉免费播放| 国产精品免费久久久久影院| 久久久久亚洲AV无码专区首JN| 全免费a级毛片免费看无码| 国产裸体美女永久免费无遮挡| 亚洲精品无码久久久久久久| 免费在线观看的黄色网址| 美丽姑娘免费观看在线观看中文版 | 国产亚洲精品资在线|