以下是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目录下 idl.tpl、idl.bat.tpl、jaco.tpl和jaco.bat.tpl文件,去掉它们的".tpl"后缀名
更改jaco.bat和idl.bat文件里内容的 "@JAVA_CMD@"为"JAVA", 意思是: jvm的”运行“命令
4\ 新建JacORB-2.3.0\classes子目录,并把JacORB-2.3.0\etc目录下jacorb_properties.template文件拷贝JacORB-2.3.0\bin\classes里,此文件更名为jacorb.properties。**********注意是jacorb.properties而非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对象
12\