Elipse 下面Corba开发图解

     下载地址ORBStudio的下载地址是:ftp://www.orbzone.org 用户名称:orbzone_downloads 密码:orbzone_downloads

使用第三方Ftp工具比如Total Commander 或者迅雷的资源探测器登陆后进入CORBA_Utilities文件夹,下面有3个zip压缩文件ORBStudio 775, ORBStudio776, ORBStudio777 ,我选择了777下载。

JacORB的下载地址:http://www.jacorb.org/

      解压缩从ORBStudio/plugins/下面取得 ORBStudio_7.7.7.jar 的JAR包 放到Eclipse/plugins下面.我用的Eclipse版本是Eclipse3.2.2 + MyEclipse 5.5GA。如果考入Jar包前以前Eclipse是运行的请关闭,重新运行。

windows/preferences/出现如下窗口选择ORB Studio/IDL Compiler/ 在右边选择JacORB 这里有5种编译器我们使用JacORB. 打开IDL Compiler 前面的加号选择

   JacORB 右边参数IDL Command: D:/Java/JacORB/bin/idl.bat ,Command Options: -d %D% %F% 这样就配置成功了Eclipse下面的Corba开发

 

三,开发步骤参考

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/目录下所有.jar文件


3.src上右键New--->Other--->CORBA Wizard--->IDL files--->Simple IDL
4.选择IDL文件,右键ORB Menu--->Compile 把生成的MyServer包移动到src目录下
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,

  然后运行客户端程序MyServiceClientImpl.java

 

结果是一样的。

目前为止,corba的本地、远程开发都已经配置完毕。以后在具体应用过程中遇到什么困难,欢迎大家一起探讨。

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IMK7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值