Corba项目笔记

**********eclipse下corba环境搭建可以参考:Corba环境搭建笔记

一、实验要求

自选程序逻辑学习使用jdk自带orb和JacORB。

以哥德巴赫猜想验证为例。

二、实验原理

1.典型的CORBA应用实现过程

2.IDL语言

说明性语言,定义组件接口,不定义实现;

语法上可以看成C++的一个子集,规定组件的属性、所继承的父类、产生的异常、事件和各类数据类型;

编译器作用:将IDL映射到具体程序设计语言,产生桩代码和框架代码;

调用请求经客户端桩传递给ORB,然后转发到服务端框架,最后到达真正要执行请求的对象实现实例。

三、实验过程及代码

1、新建一个JacORB项目,编写项目IDL文件

(1)用IDL编写对象规格说明:

(2)编译IDL生成stub和skeleton:

Run---->External Tools----->IDL Compiler,控制台输出如下:

f5刷新,生成包含stub和skeleton的包Corba:

这里stub报错,暂时不用管,后面再具体解决。

(注,也可以使用jdk中的idlj指令,idlj -fall idlName.idl生成包含stub和skeleton的包,再复制到src)。

2.Server端(以哥德巴赫猜想验证为例)

(1)编写对象实现和服务程序

(2)编写服务程序

通常程序员都会编写一个名为Server.java的服务程序,服务程序创建伺服对象供客户端使用。

3.编写客户程序

4.stub异常解决

在IDl编译生成的stub中,ServantObjectExt和exceptionalCompletion()及exceptionalCompletion()出现异常,而在API文档中我也无法找到ServantObjectExt和exceptionalCompletion()及exceptionalCompletion()相关知识,在此本人也存有疑惑,为何明明是编译IDL时它自动生成的stub,其中方法应该有理可据才是,为何我找不到相关源方法,最后我只能根据代码含义,用equals()方法暂时代替,若有知其因或有具体解决方案的,欢迎共享交流。

改为

5.项目整体

四.运行结果及说明

1. 启动windows命令行,切换到jdk安装目录bin文件夹下,执行tnameserv:

2.运行Server端再运行client端:

注:项目初学,如有不足之处,请不吝赐教。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,947评论 18 139
  • 一、OMG 1.成立于1989年的非盈利性联盟; 2. 以促进在分布式系统开发中面向对象技术的理论与实践的发展...
    容探录阅读 10,536评论 2 1
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,765评论 18 399
  • 1. 你认为什么是中间件?中间件的主要作用是什么? 定义:中间件是介于应用系统和系统软件之间的一类软件,是位于操作...
    温柔的谢世杰阅读 1,250评论 0 4
  • 今天分布式应用、云计算、微服务大行其道,作为其技术基石之一的 RPC 你了解多少?一篇 RPC 的技术总结文章,数...
    零一间阅读 1,925评论 1 46