花了半天把Jacorb的那些东西都看下 自己动手写了一个CRUD的小应用,网上Jacorb的教程多时启动的……实际编码的不多(不过Corba都是相同的)
乘今天兴致好……就随便写写丢丢人
目标读者:Corba白丁,Java初心
预备知识:Jacorb的环境配置(可以看偶前一篇日志)
应用介绍 一个简单的银行交易迷你系统……(这个比附带的DEMO还要简单)
功能JUST增删改查
动手之前确定一下这个软件需要作什么……
这是个服务器端程序,我们不需要界面,我们只需要客户端和我们遵守一些接口约定便可以提供服务
而与客户端的约定就是IDL文件……
首先写一下IDL文件
module cn{
module bankApp{
struct Account{
long long id;
string accountNo;
string password;
double amount;
long category;
};
interface Bank{
typedef Account Accounts[20];
boolean drawMoney(in Account targetAccounti,in double amount);
boolean saveMoeny(in Account targetAccount,in double amount);
boolean moveMoney(in Account initAccount,in Account targetAccount,in double amount);
boolean cancelAccount(in Account detail);
boolean createAccount(in Account detail);
boolean updateAccount(in Account targetAccount);
Accounts showAccounts(in long page);
Account showAccount(in Account tragetAccount);
boolean accountIsHaded(in string name);
};
};
};
简单的说一下IDL描述的功能
module cn{
module bankApp{
相当于java中的包
struct Account{
long long id;
string accountNo;
string password;
double amount;
long category;
};
一个结构体,相当于JAVA中的一个POJO对象,为了封装起一些相关的基础数据
引用
interface Bank{
一个接口,相当于java中一个interface对象
typedef Account Accounts[20];
定义一个Account类型的数组 大小为20(固定的),别名叫Accounts
boolean drawMoney(in Account targetAccounti,in double amount);
boolean saveMoeny(in Account targetAccount,in double amount);
boolean moveMoney(in Account initAccount,in Account targetAccount,in double amount);
boolean createAccount(in Account detail);
Accounts showAccounts(in long page);
Account showAccount(in Account tragetAccount);
这个接口提供的相关方法行为
依次为取钱,存钱,转帐(英文差),开户,查询指定帐户,查询系列帐户
boolean moveMoney(in Account initAccount,in Account targetAccount,in double amount);
boolean 代表返回类型,moveMoney是方法名,参数的签名格式为 in(传入) Account(类型) initAccount(变量名)
基本的Java与Ide对应类型,可以去WIKI看看,这里说一下java中的int对应IDL就是long
,java的long 对应long long(其实就是算位长的)
保存一下IDL文件命名为bank.idl
打开命令行,输入 idl bank.idl,然后Jacorb就自动解析了这个IDL文件
成功后发现多了一个./cn/bankApp的文件路径
AccountHelper.java BankHelper.java BankOperations.java BankPOATie.java
AccountHolder.java BankHolder.java BankPackage _BankStub.java
Account.java Bank.java BankPOA.java
*Helper *.Holderd都是将IDL中的结构体序列化OR反序列化的助手类(可以忽略)
_BankStub是一个装 负责对请求调用相应的接口阿,返回值的处理
BankOperations.java 就是接口,只表述这个应用作点什么
POA和POATie则是CorbaPOA的相应类
可以说Jacorba把大部分代码都生成了 ,我们现在只要关心我们自己的业务就可以了。
我们现在需要作的事情有这些
1.自己写一个类 负责实现Bank.java中的方法
2.自己写一个服务器类,负责注册NameServer和帮定端口
---
扩展
3.可以写一个简单的客户端类,用于测试通讯
这些放再下一次写了
分享到:
相关推荐
import org.jacorb.orb.ORB; import org.omg.CosNaming.*; public class Client { public static void main(String[] args) { ORB orb = ORB.init(args, null); NamingContextExt ncRef = ...
### JacORB 2.3 Programming Guide #### 一、简介 **JacORB 2.3 编程指南** 是一份详尽的文档,为开发者提供了关于如何使用 JacORB 实现 CORBA (Common Object Request Broker Architecture) 应用的全面指导。...
提供jacorb.jar包的下载,中间件corba的jacorb实现jar包
** JacORB 简介** JacORB 是一个开源的 Java Object Request Broker (ORB) 实现,它遵循 CORBA(Common Object Request Broker Architecture)标准。CORBA 是一种分布式计算框架,允许不同操作系统、网络协议和编程...
1. 配置MyEclipse或Eclipse,安装JacORB插件,以支持IDL到Java的编译。 2. 创建和编辑IDL文件,定义分布式对象的接口。 3. 使用插件编译IDL文件,生成对应的Java接口和 stub/skeleton 文件。 4. 在Java项目中导入...
【jacorb-2.3.1-bin.zip】是一款基于Java的ORB(Object Request Broker,对象请求代理)实现,由JacORB项目提供。ORB是CORBA(Common Object Request Broker Architecture,公共对象请求代理架构)标准的核心组件,...
1. JAR文件:如`jacorb.jar`,这是JacORB的核心库,包含了ORB实现和其他必要的类。 2. 文档:如`README`或`INSTALL`文件,提供安装和配置指南。 3. 示例和测试:可能包含一些示例代码和测试用例,帮助开发者了解如何...
- 确认`jacorb.orb`的输出信息,特别是`jacorb.hashtable_class`的设置是否正确。 2. **运行示例程序**: - 进入JacORB提供的示例目录(如`D:\JavaTool\JacORB-2.3.0\demo\grid`)。 - 使用Ant构建示例程序,...
@JAVA_CMD@-Djava.endorsed.dirs=@JACORB_HOME@/lib-Djacorb.home=@JACORB_HOME@-Dorg.omg.CORBA.ORBClass=org.jacorb.orb.ORB-Dorg.omg.CORBA.ORBSingletonClass=org.jacorb.orb.ORBSingleton-classpath%CLASSPATH...
3. **编程接口**:学习并理解JacORB提供的ORB接口和相关类,如`org.jacorb.orb.ORB`,编写符合CORBA标准的IDL(Interface Definition Language)接口定义,然后使用 JacORB 的 IDL 编译器生成Java代码。 4. **部署与...
- `jacorb.properties.bak`:JacORB的配置文件备份,包含ORB的配置参数。 - `jaco.bat.bak`:可能是Windows系统的启动脚本备份,用于启动JacORB服务器。 - `idl.bak`:IDL文件的备份,包含CORBA接口定义。 - `idl....
- 复制`C:\JacORB\etc\jacorb_properties.template`到`C:\JacORB\classes`目录下,并重命名为`jacorb.properties`。 - 编辑`jacorb.properties`文件,设置命名服务地址: ```properties ORBInitRef.NameService=...
%JACORB_HOME%\lib\jacorb.jar;%JACORB_HOME%\lib\logkit-1.2.jar; %JACORB_HOME%\lib\picocontainer-1.2.jar;%JACORB_HOME%\lib\slf4j-api-1.5.6.jar; %JACORB_HOME%\lib\slf4j-jdk14-1.5.6.jar;%JACORB_HOME%\lib\...
D:\Java\JacORB\lib\logkit-1.2.jar"org.jacorb.idl.parser-d%D%%F%` (注意修改路径以匹配您的实际环境) ##### 2.5 创建示例项目 1. **新建 Java 项目**: - 启动 Eclipse,创建一个新的 Java 项目。 2. **新建 ...
在这个DEMO中,我们关注的是JACORB(Java Object Request Broker Architecture)——一个开源的Java CORBA实现。CORBA(Common Object Request Broker Architecture)是一种标准的中间件技术,它允许不同平台上的...
1. **阅读源码**:从 `org.jacorb` 包开始,逐步了解 JacORB 的核心组件,如ORB、Naming Service、Dynamic Invocation Interface (DII) 和 Dynamic Skeleton Interface (DSI)。 2. **编译与测试**:按照文档指导,...
1. **安装 JacORB**:解压下载的JacORB-2.2.3压缩包,配置环境变量如`JACORB_HOME`,并将bin目录添加到PATH中。 2. **编写 IDL 文件**:定义分布式对象的接口,使用CORBA的IDL语法。 3. **编译 IDL**:使用`idlj`...
1. **安装和配置**:指导用户如何在不同环境中安装和设置JacORB,以及如何配置ORB参数。 2. **IDL到Java绑定**:解释如何使用IDL定义接口,并自动将其转换为Java代码。 3. **ORB初始化和启动**:描述如何在程序中...