OpenORB开发CORBA的实例介绍

目录:

  • 概述
  • 开发步骤
    1. 创建Java项目,配置Lib
    2. 创建IDL文件
    3. 创建服务单
    4. 创建客户端
    5. 测试本地调用
    6. NamingService命名服务实现远程调用

[一]、概述

本文主要是图文介绍 Eclipse+OpenORB 开发CORBA应用的详细步骤,以供初学者借鉴。有关Eclipe中CORBA开发环境的配置详见:
http://www.micmiu.com/opensource/corba/corba-eclipse-env-config/

[二]、开发步骤

【1】、创建Java项目,配置lib

在Eclipe中首先创建一个Java Project 取名为:Corba-demo;在刚创建好的项目上右击,选择  Build Path → Configure Build Path … ,然后在右侧选中页签 Libraries ,点击 Add Library… 添加已经配置好的OpenORB相关的lib库,如下图:

corba-java-dev-demo-01

【2】、创建IDL文件

在 src 文件夹上右键依次选择 New → Other… → CORBA Wizard → IDL files → Simple IDL 如下图:

corba-java-dev-demo-02

点击 Next 按钮,在File Name:输入Hello.idl  如下图:

corba-java-dev-demo-03

点击 Finish 即可。

Hello.idl 文件修改为如下内容:

选中创建好的Hello.idl文件,右键 ORB Menu → Compile,就自动编译生成Java文件,类似下图:

corba-java-dev-demo-04

corba-java-dev-demo-05

【3】、创建服务端

在 src 文件夹上右键依次选择 New → Other… → CORBA Wizard → ServerActive object map  如下图:

corba-java-dev-demo-06

点击Next ,弹出新的对话框,如下图:

corba-java-dev-demo-07

  • IDL filename :选中创建的Hello.idl
  • Interface :选择IDL文件里定义的接口名
  • Package :输入包名
  • Server classesname :服务端类的名称

然后点击 Next,在弹出对话框里选中 Create server class 项,如下图:

corba-java-dev-demo-08

点击Finish完成服务端类的初步创建,然后需要在生成的服务端类中添加还未具体实现的方法,

打开 HelloServiceServerImpl.java 文件,添加如下方法:

【4】、创建客户端

在 src 文件夹上右键依次选择 New → Other… → CORBA Wizard → Client → Simple implementation  如下图:

corba-java-dev-demo-09

点击Next ,弹出新的对话框,如下图:

corba-java-dev-demo-10

  • IDL filename :选中创建的Hello.idl
  • Interface :选择IDL文件里定义的接口名
  • Package :输入包名
  • Client classesname :客户端类的名称

点击 Finish 按钮完成客户端类的初步创建,把客户端类

HelloServiceClientImpl.java 中的main方法修改成如下:

5】、测试本地调用

首先运行服务端:Server_AOM.java 然后再运行客户端类:HelloServiceClientImpl.java

服务端日志如下:

CORBA Server ready…

[服务端] 接收的参数 : micmiu.com

[服务端] 返回信息 : Hi,micmiu.com welcome to CORBA

客户端日志如下:

[客户端] 调用结果 : Hi,micmiu.com welcome to CORBA

【6】.NamingService 命名服务实现远程调用

第一步: 服务端Server_AOM.java代码修改

注释调以下代码:

取消以下代码注释:

导入相关类的引用。

修改后完整代码如下:

第二步:客户端 HelloServiceClientImpl.java  代码的修改

在main 方法中注释调如下代码:

取消下面代码的注释:

并且修改成如下:

并且把客户端中 IOException 全部改成 Exception。

ps: “corbaloc::1.2@127.0.0.1:1234/NameService” 这个和服务端启动的参数-ORBInitRef NameService 一致.

修改后客户端的完整代码如下:

第三步:测试命名服务实现远程调用

先启动命名服务的监听,以端口 1234 为例:

micmiu-mbp:OpenORB-1.4.0 micmiu$ NamingService/bin/ins -ORBPort=1234
[main] [INFO ] (ins): NameService 1.4.0 Copyright (c) 2002-2005 The Community OpenORB
[main] [INFO ] (ins): calling ORB.init
[main] [INFO ] (ins): Service started. Press CTRL-C to stop the service!

然后启动服务端:Server_AOM.java  需要配置启动参数:

-ORBInitRef NameService=corbaloc::1.2@127.0.0.1:1234/NameService

最后启动客户端 HelloServiceClientImpl.java 测试调用,运行结果和上面本地调用测试的结果一样。

本文介绍到此结束@Michael Sun.

原创文章,转载请注明: 转载自micmiu – 软件开发+生活点滴[ http://www.micmiu.com/ ]

本文链接地址: http://www.micmiu.com/opensource/corba/corba-openorb-dev-demo/

发表评论?

5 条评论。

  1. 写的很详细,顶!d=====( ̄▽ ̄*)b
    另外想问下命名服务和ior两种方式有什么不同,
    有没有事件的实例

  2. 楼主,麻烦问一下 Server_AOM.java 这个是怎么生成的

  3. LZ你好,你这网站风格看着很舒适。请问主要是用什么框架写的呢

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">