??? 最近需要在分布式环境下开发应用,打算用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!消息,并打印。