eclipse中開發corba完整說明(jacORB版)

以下是java eclipse平臺上配置並使用jacORB2.3.0開發例子的步驟:


0\ 安裝jdk1.6.0,要求:jdk的安裝路徑裏不能包含 空格字符或中文等一些jvm無法識別的字符;
配置環境變量JAVA_HOME=“D:\JavaTool\Java\jdk1.6.0_01” ,CLASSPATH=“.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;”, path後添加 “%JAVA_HOME%\bin;”

1\ 下載配置ANT工具(apache-ant-1.7.0-bin.zip),解壓縮並配置環境變量,ANT_HOME=D:\JavaTool\apache-ant-1.7.0; CLASSPATH後添加“%ANT_HOME%\lib\ant.jar;”;path後添加“%ANT_HOME%\bin;”

2\ 下載開源corba軟件JacORB-2.3.0-bin,配置環境變量 JACORB_HOME=“D:\JavaTool\JacORB-2.3.0”,

在CLASSPATH後添加“%JACORB_HOME%\lib\idl.jar;%JACORB_HOME%\lib\jacorb.jar;%JACORB_HOME%\lib\logkit-1.2.jar;%JACORB_HOME%\lib\avalon-framework-4.1.5.jar;%JACORB_HOME%\classes;”,

在path後添加“%JACORB_HOME%\bin;”

CLASSPATH:(分行復制)
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%ANT_HOME%\lib\ant.jar;%JACORB_HOME%\lib\idl.jar;%JACORB_HOME%\lib\jacorb.jar;%JACORB_HOME%\lib\logkit-1.2.jar;%JACORB_HOME%\lib\avalon-framework-4.1.5.jar;%JACORB_HOME%\classes;

PATH:
%JAVA_HOME%\bin;%ANT_HOME%\bin;%JACORB_HOME%\bin;


3\ 更改JacORB-2.3.0\bin目錄下 jaco.tpl和jaco.bat.tpl文件,去掉它們的".tpl"後綴名
更改jaco.bat和idl.bat文件裏內容的 "@JAVA_CMD@"爲"JAVA", 意思是: jvm的”運行“命令



4\ 新建JacORB-2.3.0\bin\classes子目錄,並把JacORB-2.3.0\bin\etc目錄下jacorb_properties.template文件拷貝JacORB-2.3.0\bin\classes裏,此文件更名爲jacorb.properties。
編輯jacorb.properties文件,設置其中的ORBInitRef.NameService=file:/c:/NS_Ref(這裏是示例,當然可以爲任何httpURL或者其他路徑),這個NS_Ref文件會在啓動命名服務時生成.該配置文件其餘部分保留默認值即可.

5\ 測試命名服務(NS,Naming Service)是否可以正常啓動。
在dos命令行下輸入:ns,如果出現:
“[jacorb.orb.print_ver] INFO :
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
JacORB V 2.3.0, www.jacorb.org
(C) The JacORB project 17-Feb-2007
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[jacorb.orb] INFO : Property "jacorb.hashtable_class" is set to: java.util.Hasht
able”
表示在java下面配置jacORB成功!

6\ 啓動server端。新開一個dos窗口,切換到JacORB-2.3.0自帶的例子目錄,比如D:\JavaTool\JacORB-2.3.0\demo\grid,
6.1\ 輸入ant進行方案部署,確定成功!
6.2\ 在dos窗口中執行 jaco demo.grid.Server 或者 jaco demo.grid.TieServer,
在輸出窗口看到
“[jacorb.orb.print_ver] INFO :
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
JacORB V 2.3.0, www.jacorb.org
(C) The JacORB project 17-Feb-2007
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
[jacorb.orb] INFO : Property "jacorb.hashtable_class" is set to: java.util.Hash
able
[org.jacorb.orb.codes] WARN : Warning - unknown codeset (GBK) - defaulting to I
O-8859-1
[jacorb.orb.intercept] INFO : InterceptorManager started with 0 Server Intercep
ors, 0 Client Interceptors and 1 IOR Interceptors
[jacorb.poa] INFO : oid:
00 15 3D 04 34 15 41 2B 30 42 ..=.4.A+0B
object is activated
[jacorb.poa] INFO : Using server ID (7780956264) for transient POA
[jacorb.orb.singleton] INFO : created ORBSingleton
[jacorb.orb.giop] INFO : ClientConnectionManager: created new ClientGIOPConnect
on to 192.168.1.19:1046 (8a0d5d)
[jacorb.orb.iiop] INFO : Connected to 192.168.1.19:1046 from local port 1048
[jacorb.orb] INFO : ORB run”

6.3\ 這時在ns輸出窗口可以看到:
[jacorb.naming] INFO : Bound name: grid.example

7\ 啓動client端。新開一個dos窗口,切換到JacORB-2.3.0自帶的例子目錄,比如D:\JavaTool\JacORB-2.3.0\demo\grid,
7.1\ 在dos窗口中執行jaco demo.grid.Client
在輸出窗口看到
“Height = 31
Width = 14
Old value at (30,13): 0.21
Setting (30,13) to 470.11
New value at (30,13): 470.11
MyException, reason: This is only a test exception, no harm done :-)
[jacorb.orb] INFO : prepare ORB for shutdown...
[jacorb.orb] INFO : ORB going down...
[jacorb.orb.iiop] INFO : Client-side TCP transport to 192.168.1.19:1047 closed.
[jacorb.orb.iiop] INFO : Client-side TCP transport to 192.168.1.19:1046 closed.
[jacorb.orb] INFO : ORB shutdown complete
done.” ,表示運行demo.grid例子成功!
7.2\

8\ 配置CORBA的JAVA IDE環境 - 工具: Eclipse 3.2 + MyeclipseEnterprise5.1。
8.1\ 解壓縮並配置eclipse3.2版本
8.2\ 安裝myeclipse(MyEclipseEnterpriseWorkbenchInstaller_5.1.0GA_E3.2.1.exe版本)

E:\Program Files\eclipse3.3\plugins\ORBStudio_7.7.7.jar
8.3\ 下載並配置eclipse的CORBA插件ORBStudio777.zip。解壓縮把裏面 ORBStudio_7.7.7.jar 文件放到目錄 “eclipse-SDK-3.2.1-win32\newplugins\ORBStudio7.7.7\eclipse\plugins”下,並在eclipse-SDK-3.2.1-win32\links\文件下創建連接文件“ORBStudio7.7.7.link”,寫如下內容“path=D:\\coco\\java\\eclipse-SDK-3.2.1-win32\\newplugins\\ORBStudio7.7.7”,意思是告訴eclipse說我的插件放在目錄“D:\coco\java\eclipse-SDK-3.2.1-win32\newplugins\ORBStudio7.7.7”。 重啓eclipse後“新建”嚮導-“其他”裏能看到“CORBA Wizard”表示配置插件成功
8.4\ 配置ORBStudio IDL編譯器,
8.4.1 打開windows->preferences->ORB Studio->IDL Compiler->JacORB項
8.4.2 配置IDL Command: D:\JavaTool\JacORB-2.3.0\bin\idl.bat (JacORB-2.3.0的idl編譯器) D:\JavaTool\JacORB-2.3.0\bin\idl.bat
8.4.3 Command Options: -d %D% %F%
8.4.4 在IDL Compiler項上選擇IDL爲 JacORB(J)項

9\ 使用eclipse 開發corba測試程序
9.1\ JacORB的應用開發一般分爲以下五步:
步驟 使用方法 用途
9.1.1.寫IDL接口定義
9.1.2.將IDL編譯成 Client Stub 代碼和 Server Skeleton代碼 (IDL接口文件)右鍵->ORB Menu(U)->Compile 生成java語言的接口
9.1.3.實現步驟2中生成的接口(server方) 在eclipse上擴展實現 IDL定義的接口 生成邏輯業務類,繼承自 *POA 類
9.1.4.寫服務器啓動類,並註冊到ORB
9.1.5.寫客戶端去獲取服務對象引用
9.1.6.編譯和調試。
9.1.7.運行程序。

9.2\ 查看文件“eclipse中jacORB創建實例.txt”

9.3\ 利用ip和端口訪問的例子“corba-ip- demo”

9.4\ 訪問本地服務器的例子“Hello-local- demo”

10\ 調試時注意:
server端:debian平臺上用tao開發的.
未指定nameservice的端口時, 系統將隨機指定.
client端:windowsXP上使用eclipse 3.2 + MyEclipse + jacORB2.3.0

過程:
10.1\ 程序通過corba ORM在內網取server端的name service,通過ip地址
10.2\ 第二次存取對象數據時,通過hostname,如果出現無法解析時,先ping 此hostname,如果無法ping通,請配置 C:\WINDOWS\system32\drivers\etc\hosts 文件,在最後添加上一行:“192.168.1.15(server ip) debian.local(server hostname) ”
10.3\ 如果通過分佈式開發C-S走的是公網,解決方法:可與內網一樣,也可以配置DNS解決

11\ 自定義端口的調試
11.1\ 開DOS窗口, 輸入: ns (啓動corba服務)
11.2\ 開DOS窗口, 輸入: tnameserv或orbd,如:tnameserv -ORBInitialPort 2809 (啓動Java IDL Name Service)
格式:
   tnameserv -ORBInitialPort nameserverport
   其中,nameserverport 是ORB名字服務器的服務端口號,可以自選,如1234(在UNIX系統下,非root用戶只能使用大於1024的服務端口號)。
11.3\ 開DOS窗口, 切換到運行目錄下, 運行服務端程序:
java EchoServer -ORBInitialHost 192.168.1.19 -ORBInitialPort 2809
java EchoServer -ORBInitRef NameService=corbaloc:iiop:[email protected]:2809/NameService
或:
java EchoServer -ORBInitRef NameService=corbaloc:iiop:1.2@localhost:2809
java EchoServer -ORBInitRef NameService=corbaloc::localhost:2809
注意: 如果在eclipse等IDE下調試, 參數類直接輸入名稱,不需要包路徑
11.4\ 開DOS窗口, 切換到運行目錄下, 運行客戶端程序:
java EchoClient -ORBInitialHost 192.168.1.19 -ORBInitialPort 2809
java EchoClient -ORBInitRef NameService=corbaloc::192.168.1.19:2809/NameService
或:
java EchoClient -ORBInitRef NameService=corbaloc:iiop:1.2@localhost:2809
注意: 如果在eclipse等IDE下調試, 參數類直接輸入名稱,不需要包路徑

11\ jacORB 其他工具介紹:

工具或命令 作用
Idl –d 編譯後目錄 idl文件 編譯idl文件。
Ns ior文件位置 啓動name service服務
lsns 文本方式列出當前服務中的name serviec列表
nmg 圖形方式工作的name service列表,還可以新建Context(沒有太明白這個概念)
dior –f ior文件位置 ior文件解碼器,將ior文件翻譯成用戶可讀格式。
Pingo –f ior文件位置 測試聯結ior對象
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章