JacORB 应用开发

CORBA平台 JacORB2.1 学习笔记--入门篇 CORBA平台 JacORB2.1 学习笔记--入门篇 JacORB2.1 学习笔记--入门篇JacORB是免费的Java对象请求代理系统(CORBA),附带全部源代码,包含大部分CORBA对象服务的实现,以及大量的代码实例。下面将介绍如何运行它所带的DEMO,了解基本的JacOrb知识.(假设您的系统为WIN2K/XP/NT,且已经安装jdk1.4.x 和 ANT工具 阅读详情

JacORB的应用开发一般分为以下五步:

1.写IDL接口定义
接口使用IDL(接口定义语言)在sss.idl中定义

2.编译IDL接口定义生成Java类
使用如下命令编译此接口文件:
$idl -d ../.. server.idl
此命令将生成多个Java源文件,Java源文件的生成依照OMG标准的IDL-Java语言映射定义。
IDL编译器产生Java接口PlanSupplier、PlanSupplierOperations、PlanConsumer、PlanConsumerOperations,及桩和骨架文件_PlanSupplierStub、PlanSupplierPOA、PlanSupplierPOATie、PlanConsumerStub、PlanConsumerPOA、PlanComerPOATie。
注意IDL编译器将会产生一个和IDL接口文件中定义模块相对应的目录结构。如果我们不指定-d ../..,将在当前目录下创建子目录。

3.实现步骤2中生成的接口
现在我们来实现接口定义中描述的功能。这个Java类命名为PlanSupplierServerImpl、PlanConsumerServerImpl,除了要实现接口定义中描述的所有功能外,还应该是在前面生成的类PlanSupplierPOA和PlanConsumerPOA的子类。PlanSupplierPOA和PlanConsumerPOA中包含接受远程调用和将结果返回给客户的端的相关代码。

4.写服务器启动类,并注册到ORB
这一步要写一个类来调用PlanSupplierServerImpl和PlanConsumerServerImpl类,并将其注册到POA,这样远程对象才能通过PlanSupplier和PlanConsumer接口来访问它。
I.  初始化ORB
    orb = ORB.init(args, props);

II. 获取一个POA的引用
    org.omg.CORBA.Object objPOARoot = orb.resolve_initial_references("RootPOA");   //得到根POA对象
    POA poaRoot = POAHelper.narrow(objPOARoot); //得到POA 。ORB可以通过"RootPOA"来获取一个                                                           //初始引用,此引用只是一 个CORBA.Object,需要使用POAHelper来实例化为POA的引用。

III.激活该对象
    poaRoot.the_POAManager().activate();        //因为引用刚创建时是“保持”状态,在这种状态下,不能处理任何请求。通过调用POA的   //POAManager对象的activate()方法将POA激活。现在就可以通过POA将一个Java对象转化成一个CORBA对象。

VI. 提供该对象的引用(为了使新创建的CORBA对象能被客户端访问)           //这一过程通过目录服务--命名服务器--来完成
    org.omg.CORBA.Object objNCE = orb.resolve_initial_references("NameService");
    nce = NamingContextExtHelper.narrow(objNCE);
  //命名服务器的引用实例化为正确的命名服务器对象   
   
V.  发布CORBA对象引用
    //绑定servant
    Iterator it = servants.keySet().iterator();
    while(it.hasNext()){
        Servant servant = (Servant)it.next();
        String bindingName = (String)servants.get(servant);
        org.omg.CORBA.Object obj = poaRoot.servant_to_reference(servant);

        //绑定名字对象到Servant的引用
        NameComponent[] nct = nce.to_name(bindingName);
        nce.rebind(nct, obj);  
   
    }   //对象的名称作为bind()的参数传入,不能只传递一个字符串,而是应传入代表名称的CosNaming.NameComponents对象

5.写客户端去获取服务对象引用
I.  初始化ORB
    orb = ORB.init(args, props);
   
II. 客户端通过命名服务器获取服务的引用
    org.omg.CORBA.Object objNCE = orb.resolve_initial_references("NameService");  //获取命名服务。使用resolve()方法在命
                                                                                  //名服务器上查找"NameService"的引用
    nce = NamingContextExtHelper.narrow(objNCE);   //返回的结果是org.omg.CORBA.Object对象,需要实例化为 NamingContextExt
   

在将所有的Java类都成功编译以后,现在可以在不同的Java虚拟机中启动服务器和客户端。当然,应该是命名服务最先启动,如果命名服务还没有启动,使用以下命令来启动:
$ns /home/me/public_html/NS_Ref
/home/me/public_html/NS_Ref是一个本地的可写文件,服务器和客户端都可以通过URL的方式访问。这样,可以不使用端口号,而服务器和客户端都可以获取命名服务的引用,从而实现互相访问。

启动服务器:
$jaco lamost.sss.corbaif.CorbaSrvAgent

接着,运行客户端:
$jaco lamost.sss.corbaif.CorbaClntAgent

使用JacORB编译idl文件生成依赖的开发jar---Corba北向接口开发001 解压后要注意厘米是两个压缩包都解压就可以了,这里omg其实是JacORB中的提供的一些辅助的idl文件,也就是厂商依赖的idl文件,然后xxx.zip是厂商自己的idl文件,这里要注意,每个厂商的结构可能不一样,但是最后都需要自己整理成下面的样子.5.加上以后,然后就可以去编译idl了,编译的时候,首先,拿到厂商给的idl,这里以阿卡为例,当然,烽火,华为,中兴也是一样的.可以看到在编译出来的C盘的,Java文件夹下的com文件夹下的test文件夹下就已经有了编译出来的java代码了.... 阅读详情

相关推荐

jacorb开发

jacorb开发,主要介绍了jacorb的安装流程,在linux环境下的安装

JacORB 配置以及开发

1. reference http://blog.csdn.net/liuhuang007/article/details/5482683 http://hi.baidu.com/%D0%A1%C6%BD339/blog/item/2b588ad5b93bcbc050da4b61.html 常见问题总结(参考http://hi.baidu.com/%D0%A1%C6%BD339/blog...

gaofen100 400

JacORB

支持JAVA语言的免费CORBA中间件产品

Eclipse下JacORB开发环境搭建及实例

JacORB是OMG  corba的Java实现,用于开发分布式应用。本文将详细介绍如何在Eclipse下搭建JacORB开发环境。 一、安装JacORB 首先下载Jacorb发行包,到JacORB官网下载jacORB发行版本,建议选择编译好的(源码版需要使用ant编译),本文作者选择的是 jacorb-3.4-binary.zip。 接着把jacorb添加到系统环境变量,解压文件包

lyc_0528的专栏 2410

eclipse中开发corba完整说明(jacORB版)

以下是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%\li

hq0927的专栏 6666

JacORB开发Corba客户端

Corba算是比较古老的分布式系统了,因为工作需要,需要访问Corba的服务器(也是用JacORB)实现的一套系统,其实就是TMF814相关规范的Corba实现,以下是摸索的点滴,在此稍作记录,以防忘记。 [list] [*]访问服务器的几种方式 [list=1] [*]IOR的方式,就是将服务信息导出为字符串,直接传给客户端相关代码 [*]ORBInitRef.NameServ...

lovec的专栏 393

使用Java进行CORBA编程-JacORB-入门

到http://www.jacorb.org/download.html下载JacORB3.0Beta。 下面开发一个简单的应用。 Event Service => http://blog.csdn.net/fw0124/article/details/7192305 Notification Service => http://blog.csdn.net/fw0124/articl

NowOrNever 7077

Jacorb 安装与设置

 1. 下载安装Jacorb2.1      下载JacORB_2_1-compact.zip(已经编译的版本),解压缩到磁盘上,例如 E:/JacORB .      然后, 为了在调试时可以找到有关包和jacorb.properties配置文件,需要在系统环境变量中设置  classpath=.;E:/JacORB/idl.jar;E:/JacORB/jacorb.jar;E:/JacORB/

幽客独往 7331

JaCORB安装指南

 JacORB应用开发一般分为以下五步:     1.写IDL接口定义编译IDL 2.接口定义生成Java类 3.实现步骤2中生成的接口 4.写服务器启动类,并注册到ORB 5.写客户端去获取服务对象引用 下载安装Jacorb2.2.4 1)           从http://www.jacorb.org/download.html下载JacORB 2.2.4,解压缩到

du412983021的专栏 1073

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;”,>(注:JAVA_HOME的路径中不可以有空格,也就

du412983021的专栏 685

java调用corba_用JACORB开发corba应用

JACORB开发以及corba的请求方式:JacORB应用开发一般分为以下五步:1.写IDL接口定义2.编译IDL接口定义生成Java类3.实现步骤2中生成的接口4.写服务器启动类,并注册到ORB5.写客户端去获取服务对象引用本例子是采用JACORB里面的一个GRID的例子,从这里例子我们能看出CORBA开发的一些基本步骤,犹豫本例子采用的都是JAVA开发的,由于也受到JACORB的框架限制,并...

weixin_30365269的博客 765

eclipse中开发corba完整说明(jacORB版)-文库中原有的文件中有部分错误-已修改

以下是java eclipse平台上配置并使用jacORB2.3.0开发例子的步骤: 0\ 安装jdk1.6.0,要求:jdk的安装路径里不能包含 空格字符或中文等一些jvm无法识别的字符; 配置环境变量JAVA_HOME=“D:\JavaTool\Java\jdk1.6.0_01” ,CLASSPATH=“.;%JAVA_HOME%\lib\d...

weixin_34233618的博客 147

jacorb 的使用(一)

<br />1. http://www.jacorb.org/download.html 下载最新的2.3版本 <br /><br /><br />2. 将jacorb放在 D:/jacorb 目录下。 <br /><br />3. 修改 /bin目录下的 jaco.bat 文件,内容如下: <br /><br />@echo off <br />rem call java interpreter <br />set JACORB_HOME=D:/jacorb <br />set JAVA_HOME=C:/

Stone的专栏 2306

JacORB编程(1)

一、使用到的软件JacORB 2.3Eclipse SDK 3.2.2JDK5 1.5.0_11ORB Studio 7.7.7使用的系统为Windows XP SP2。版本号可能不一定要完全按照上面,但是如果你配置成功不了,不妨就按上面来弄。二、为eclipse安装corba开发插件。ORB Studio是开发corba的插件,用于eclipse。安装其实很简单,把ORBStudio

james的专栏 3605

Corba开发总结(一)---JacORB的安装与编译

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33725272的博客 669
上一篇: CS 实战心得
下一篇: Java与C++的区别
casularm
博客等级 码龄23年 873粉丝 369原创
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值