博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Corba开发总结(一)---JacORB的安装与编译
阅读量:5823 次
发布时间:2019-06-18

本文共 4254 字,大约阅读时间需要 14 分钟。

hot3.png

    由于公司新项目要求,做了一段时间的CORBA接口(中兴+华为)开发,踩了各种大大小小的坑,也算积累了一些经验,特分享至此,经验所限难免会有疏漏,欢迎讨论完善。

 

一、CORBA技术说明

    CORBA(Common Object Request Broker Architecture,公共对象请求代理体系)是吸收了软件界面向对象技术、分布式计算技术、多层体系结构技术以及接口技术的一种综合技术,是一种对象间通信的工业标准。

CORBA规范包含: 

  • 接口定义语言 (IDL, Interface Definition Language)
  • IDL语言和高级编程语言之间的映射
  • IIOP(Internet Inter-ORB Protocol)通信协议
  • 可透过网络传递的对象引用格式

CORBA的基本特征:

  • 跨平台、跨语言、跨ORB(Object Request Broker)的互操作性
  • 即插即用的分布式特性

 

二、JacORB安装配置

1、到http://www.jacorb.org/download.html下载合适的版本并解压到本地,我选用的是JacORB-2.2.4版本。

     本地目录:D:\Programming\JAR\JacORB\JacORB-2.2.4

2、设置环境变量

      确保有java环境和JAVA_HOME变量,我本地使用的是Java6环境。

      添加D:\Programming\JAR\JacORB\JacORB-2.2.4\bin到环境变量path

      创建JACORB_HOME变量为D:\Programming\JAR\JacORB\JacORB-2.2.4

      ps:此处也可以不用设置系统环境变量,直接在idl.bat里设置。

3、修改idl.bat

      %JACORB_HOME%\bin目录下会自带一个idl.bat的文件,该文件只是一个示例,需要修改文件内容。

      原内容:

@echo offjava -classpath "C:\JacORB-2.2.4\lib\idl.jar;C:\JacORB-2.2.4\lib\logkit-1.2.jar;%CLASSPATH%" org.jacorb.idl.parser %*

      修改后【我自己的版本】:

@echo off rem @JAVA_CMD@ -classpath "@JACORB_HOME@/lib/idl.jar;@JACORB_HOME@/lib/logkit-1.2.jar;%CLASSPATH%" org.jacorb.idl.parser %* set JACORB_HOME=D:/Programming/JAR/JacORB/JacORB-2.2.4set JAVA_HOME=D:/Programming/JDK/jdk1.6.0_31set path=%JAVA_HOME%/bin;%path% set CLASSPATH=%JAVA_HOME%/lib/rt.jar set CLASSPATH=%JACORB_HOME%/lib/antlr-2.7.2.jar;%JACORB_HOME%/lib/avalon-framework-4.1.5.jar;%JACORB_HOME%/lib/concurrent-1.3.2.jar;%JACORB_HOME%/lib/idl.jar;%JACORB_HOME%/lib/jacorb.jar;%JACORB_HOME%/lib/logkit-1.2.jar;%JACORB_HOME%/lib/picocontainer-1.2-021105.jar;%JACORB_HOME%/lib/wrapper-3.1.0.jar;%JACORB_HOME%/classes;%CLASSPATH% %JAVA_HOME%/bin/java -cp %CLASSPATH% org.jacorb.idl.parser %*

 

4、在%JACORB_HOME%\bin目录执行命令行 idl -h,显示帮助信息,说明已配置完成。

D:\Programming\JAR\JacORB\JacORB-2.2.4\bin>idl -h        -h|help         these few lines of help        -v|version      print version information        -d dir          root of directory tree for output        -Dx             define preprocessor symbol x with value 1        -Dx=y           define preprocessor symbol x with value y        -Idir           set include path for idl files        -U
undefine preprocessor symbol -W [1..4] debug level -all generate code for all IDL files, even included ones -forceOverwrite generate code even if IDL has not changed -ami_callback generate AMI reply handlers and sendc methods -ami_polling generate AMI poller and sendp methods -backend classname use classname as code generator -i2jpackage x:a.b.c replace IDL package name x by a.b.c in generated Java code (e.g. CORBA:org.omg.CORBA) -i2jpackagefile
replace IDL package names using list from
. Format as above. -ir generate information required by the Interface Repository -nofinal generated Java code will contain no final class definitions -unchecked_narrow use unchecked_narrow in generated code for IOR parameters in operations -noskel disables generation of POA skeletons -nostub disables generation of client stubs -cldc10 code generation compatible with J2ME/CLDC 1.0 -sloppy_forward allow forward declarations wo. later definitions -sloppy_names less strict checking of module name scoping -permissive_rmic tolerate dubious IDL generated by JDK's rmic, includes -sloppy_names. -syntax syntax check only, no code generation

 

三、编译IDL文件

执行以下命令:

#编译中兴IDL#D:\Programming\JAR\JacORB\JacORB-2.2.4\idl\omg 是编译中兴idl时要依赖的idl文件#D:\idl\zhongxing\*.idl是中兴idl文件目录#org.omg.zx是中兴idl编译生成的java服务端接口文件的包名#c:/corba/zx 是生成中兴idl服务端接口文件所在的目录idl -all -d c:/corba/zx  -ID:\Programming\JAR\JacORB\JacORB-2.2.4\idl\omg -i2jpackage :org.omg.zx -in D:\idl\zhongxing\*.idl#编译华为IDL#D:\idl\huawei\OMG 是编译华为idl时要依赖的idl文件#D:\idl\huawei\*.idl是华为idl文件目录#org.omg.zx是华为idl编译生成的java服务端接口文件的包名#c:/corba/hw 是生成华为idl服务端接口文件所在的目录idl -all -d c:/corba/hw  -ID:\idl\huawei\OMG -i2jpackage :org.omg.hw -in D:\idl\huawei\*.idl

IDL编译完成后即可在c:/corba/zx和c:/corba/hw目录下看到对应的java接口文件,将org.omg.zx和org.omg.hw两个目录都导入项目中就可以开始corba接口的开发了。

 

转载于:https://my.oschina.net/dong706/blog/1784834

你可能感兴趣的文章
数据结构-时间复杂度
查看>>
对象与字符串相互转换
查看>>
[NOIp2017提高组]小凯的疑惑
查看>>
《C程序设计语言》练习1-5
查看>>
$\frac{dy}{dx}$ 是什么意思?
查看>>
Go开发之路(目录)
查看>>
RHEL6.5安装成功ORACLE11GR2之后,编写PROC程序出错解决方法
查看>>
(50)与magento集成
查看>>
Ubuntu设置python3为默认版本
查看>>
日期Calendar/Date的用法
查看>>
JsonCpp 的使用
查看>>
问题账户需求分析
查看>>
JavaSE-代码块
查看>>
爬取所有校园新闻
查看>>
32、SpringBoot-整合Dubbo
查看>>
python面向对象基础
查看>>
HDU 2044 一只小蜜蜂(递归)
查看>>
docker 下 安装rancher 笔记
查看>>
spring两大核心对象IOC和AOP(新手理解)
查看>>
数据分析相关
查看>>