最近需要在分布式环境下开发应用,打算用Orbacus+Eclipse组合,发现ORBStudio777中并无Orbacus相关配置选项,遂在原作者的ORBStudio777版本上增添了Orbacus的选项,(源码包和编译好的插件在附件中),这里,我将整个环境搭建过程写下:
系统环境和软件版本:
(1)WinServer2008R2(x64)
(2)JDK:jdk-6u22-windows-x64.exe
(3)eclipse:eclipse-java-helios-SR1-win32-x86_64.zip
(4)Orbacus:JOB-4.3.4-win32.zip
(4) eclipse插件:ORBStudio777(自己修改的增强版^^)
(5)ANT:apache-ant-1.8.1-bin.zip(用于编译安装Orbacus)
软件下载:
Orbacus : http://web.progress.com/en/orbacus/downloads.html
其余略去
参考:http://bfcat.iteye.com/blog/769584
一、安装JDK:
1)将JDK安装到D:\install\jdk1.6(目录随便放,这里为了统一,均方在D:\install目录,下同)。
2)设置JAVA_HOME环境为:D:\install\jdk1.6。
3)修改环境变量Path,增加:D:\install\jdk1.6\bin。
二、安装ANT编译工具:
1)解压apache-ant-1.8.1-bin.zip到D:\install\ant下。
2)设置环境变量ANT_HOME为:D:\install\ant。
3)修改环境变量Path,增加:D:\install\ant\bin。
三、安装Orbacus4.3.4
1)解压JOB-4.3.4-win32.zip到D:\install\JOB,调整目录结构为
D:\install\JOB
|--bin
|--JOB-4.3.4
2)修改环境变量Path,增加:D:\install\JOB\bin
3)编译安装Orbacus到D:\install\JOB目录下:
打开命令行窗口,切换到D:\install\JOB\JOB-4.3.4目录下,执行命令:ant -Dinstall.dir=D:\install\JOB
此时,D:\install\JOB目录下多了idl和lib两个目录
四、测试Orbacus安装成功,这里我以demo下的hello为例:
1)运行服务器:打开一个命令行窗口,切换到D:\install\JOB\JOB-4.3.4\ob\demo\hello目录下,执行命令:
set CLASSPATH=..\..\lib;classes;%CLASSPATH%
java -Xbootclasspath/p:%CLASSPATH% hello.Server
2)运行客户端:打开一个命令行窗口,切换到D:\install\JOB\JOB-4.3.4\ob\demo\hello目录下,执行命令:
set CLASSPATH=..\..\lib;classes;%CLASSPATH%
java hello.Client
3)在客户端输入"h”,在服务端收到"Hello World!” 说明此时成功。
4) -Xbootclasspath选项是告诉JVM优先使用其后所指定的类库中搜索需要的类。不加这个参数,出现:
Exception in thread "main" java.lang.NoSuchMethodError: org.omg.PortableIntercep
tor.IORInterceptor_3_0.adapter_manager_state_changed(Ljava/lang/String;S)错误,原因是Orbacus自带的类库和JDK类库不兼容的缘故。
五、安装eclipse:
1)将eclipse-java-helios-SR1-win32-x86_64.zip解压到D:\install\eclipse下
六、安装ORBStudio777插件:
1)在D:\install\eclipse\dropins目录下,新建ORBStudio(名字任意)目录,建好的目录结构如下:
D:\install\eclipse\dropins
|--ORBSTudio
|--eclipse
|--plugins
2)将ORBStudio777.jar包拷到plugins目录下
3)打开eclipse,选择window->Preferences,左侧多出ORB Studio选项卡,将默认IDL Compile改为Orbacus;并配置Orbacus的IDL Command为:D:\install\JOB\bin\jidl.exe
七、创建eclipse的一个HelloWorld示例:
1)打开eclipse,新建名为HelloWorld的java project。
2)创建idl:
鼠标右击src->New->Other,在CORBA Wizard下,选择IDL files下的Simple IDL
3)打开simple.idl文件,修改module后的声明为test
4)右击simple.idl文件,->ORB Menu(O)->Compile进行编译,此时会生成test包,里面有8个java文件
5)鼠标右击src->New->Other,在CORBA Wizard下,选择Server下的Default servant,在IDL filename中,选择/{projectname}/src/{idlname}.idl,在Interface中,选择test.MyService;在package中,输入server,点击下一步,勾选生成类
6)右击src->New->Other,在CORBA Wizard下,选择Client下的simple implementation,在IDLfilename中,选择/{projectname}/src/{idlname}.idl,在Interface中,选择test.MyService;在package中,输入client,点击Finish
7)修改Server端的代码:
public class MyServiceServerImpl extends test.MyServicePOA { @Override public void operation1(String msg) { // TODO Auto-generated method stub System.out.println(msg); } }
8)修改Client端 MyServiceClientImpl的代码:
public static void main(String[] args) { try { MyServiceClientImpl test = new MyServiceClientImpl(); test.getORBInterface().operation1("HelloWorld!"); test.shutdown(); } catch(IOException ex) { ex.printStackTrace(); } }
9)配置并运行Server端:
右击项目名称,->Run As->Run Configuations,新建一个Java Application的launch configuration,
在main选项卡中的Poject选择HelloWorld;MainClass选择server.Server_DefaultServant;在Arguments选项卡的VM arguments中输入-Xbootclasspath/p:D:\install\JOB\lib\OB.jar,运行,服务端即开启
10)运行客户端:
在命令行窗口中进行操作,方法和上面的demo相同。
11)运行结果:
Server端会收到一条客户端发来的HelloWorld!消息,并打印。