BlogJava 聯系 聚合 管理  

          Blog Stats

          隨筆分類

          隨筆檔案


          chinadave

          一、 使用到的軟件
          1. corba產品:OpenORB
          下載地址:
          http://sourceforge.net/projects/openorb/
          解壓后如下圖所示



          2. 開發工具Eclipse 3.4.2


          3. 插件:ORBStudio777
          下載地址:.
          ftp://www.orbzone.org 用戶名稱:orbzone_downloads 密碼:orbzone_downloads
          使用第三方Ftp工具或者迅雷的資源探測器登陸后進入CORBA_Utilities文件夾,下面有3個zip壓縮文件ORBStudio 775, ORBStudio776, ORBStudio777 ,我選擇了777下載。
          解壓后如下圖所示

          4. Javacc
          下載javacc,網址:
          https://javacc.dev.java.net/
          解壓后如下圖所示

          二、安裝配置
          1. 解壓OpenOrb.rar
          2. 解壓ORBStudio777.zip,從ORBStudio/plugins/下面取得 ORBStudio_7.7.7.jar 的JAR包放到Eclipse/plugins下面.我用的Eclipse版本是Eclipse3.4.2。如果考入Jar包前以前Eclipse是運行 的請關閉,重新運行。
          3. 運行CMD 到DOS,再到存放javacc的bin目錄,輸入 javacc -tm D:\Eclipse3.22\eclipse\ORBStudio\IDLParser.jj

          4. 添加環境變量TCOO_HOME,值為OpenOrb目錄的路徑
          5. 啟動eclipse
          6. windows/preferences/出現如下窗口選擇ORB Studio/IDL Compiler/ 在右邊選擇OpenORB這里有5種編譯器我們使用JacORB. 打開IDL Compiler 前面的加號選擇

          右邊參數IDL Command: D:\ComponentTechnology\OpenOrb\OpenORB\bin\idl2java.bat
          Command Options: -d %D% %F%

          這樣就配置成功了Eclipse下面的Corba開發。Eclipse的新建選擇如圖:


          三、開發步驟參考
          1. 在eclipse里新建項目,Project lauyout 選擇Create separate source and output folders

          2. 給新項目添加Libraries,右鍵Properites--->Libraries--->Add Library--->User Library--->User Libraries...--->New...--->Add JARs...
          找到OpenOrb\OpenORB\lib目錄下openorb_orb-1.4.0.jar,openorb_orb_tools-1.4.0.jar
          OpenOrb\OpenORB\lib\endorsed目錄下openorb_orb_omg-1.4.0.jar
          OpenOrb\tools\lib目錄下launcher.jar,tools-1.4.0.jar
          OpenOrb\tools\lib\ext目錄下所有.jar文件

          3. src上右鍵New--->Other--->CORBA Wizard--->IDL files--->Simple IDL

          4. 選擇IDL文件,右鍵ORB Menu--->Compile,就自動生成文件

          5. src上右鍵New--->Other--->CORBA Wizard--->Server--->Active object map--->Next在彈出的對話框里IDL filename欄選擇/{projectName}/src/{IDLname}.idl
              Interface欄選擇IDL文件里定義的接口名
              Package欄里填寫包名
              Server classname欄里填寫服務端類名
          --->Next 在彈出的對話框,選中Create server class:項

          6. 為生成的服務端類添加未實現的方法,并填寫方法體

          7. src 上右鍵New--->Other--->CORBA Wizard--->Client--->Simple implementation 在彈出的對話框里IDL filename欄選擇/{projectName}/src/{IDLname}.idl
              Interface欄選擇IDL文件里定義的接口名
              Package欄里填寫包名
              Client classname欄里填寫客戶端類名

          8. 在客戶端類的main方法里,取消注釋test.getORBInterface().operation1("A message in the bottle..."); 并修改傳遞的String內容

          9. 運行服務端程序Server_AOM.java,然后運行客戶端程序MyServiceClientImpl.java

          如果,你要將你的程序包發布到別的機器上,就要用到名稱服務,使用名稱服務,我們需要在java代碼上作些修改:

          使用名稱空間的配置:

          1. 找到并注釋服務端Server_AOM.java里main方法的下列代碼:

          PrintWriter ps = new PrintWriter(new FileOutputStream(new File("server.ior")));
          ps.println(orb.object_to_string(obj));
          ps.close();

          取消下列代碼(位置在上面代碼的上方)的注釋:

          // org.omg.CORBA.Object ncobj = orb.resolve_initial_references("NameService");
          // NamingContextExt nc = NamingContextExtHelper.narrow(ncobj);
          // nc.bind(nc.to_name("MyServerObject"), obj);

          修改bind方法為rebind,并引入新的類


          2. 找到并注釋客戶端MyServiceClientImpl.java里main方法的下列代碼:

          LineNumberReader input = new LineNumberReader(new FileReader("server.ior"));
          String ior = input.readLine();
          org.omg.CORBA.Object obj = orb.string_to_object(ior);

          取消下列代碼(位置在上面代碼的上方)的注釋:

          // org.omg.CORBA.Object ncobj = orb.resolve_initial_references("NameService");
          // NamingContextExt nc = NamingContextExtHelper.narrow(ncobj);
          // org.omg.CORBA.Object obj = nc.resolve_str("MyServerObject");

          引入新的類

          修改org.omg.CORBA.Object ncobj = orb.resolve_initial_references("NameService");里面的參數,服務端Server_AOM.java也要改。

          改為"corbaloc::1.2@hostname:portNumber/NameService"

          修改resolve_initial_references方法為string_to_object

          修改所有異常為Exception


          3. 用命令行的方式,在OpenOrb\NamingService\bin目錄下執行ins -ORBPort=portNumber


          4. 帶參數 -ORBInitRef NameService=corbaloc::1.2@hostname:portNumber/NameService 運行服務端Server_AOM.java,


          5. 然后運行客戶端程序MyServiceClientImpl.java,結果是一樣的。

          目前為止,corba的本地、遠程開發都已經配置完畢。

          posted on 2009-11-16 09:42 whoami 閱讀(1150) 評論(0)  編輯  收藏 所屬分類: CORBA相關

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


          網站導航:
           
          主站蜘蛛池模板: 沁源县| 凤翔县| 禄丰县| 彩票| 日土县| 普兰县| 井陉县| 阳江市| 合水县| 奈曼旗| 邵武市| 明光市| 红原县| 峨眉山市| 资溪县| 临清市| 丰城市| 卢湾区| 托克托县| 陈巴尔虎旗| 腾冲县| 什邡市| 上林县| 博罗县| 洮南市| 彭州市| 贵溪市| 伊宁县| 淮南市| 凤庆县| 沾化县| 都江堰市| 兰溪市| 荔波县| 时尚| 龙口市| 揭阳市| 久治县| 航空| 台南市| 化隆|