发信人: freely (www.BeatIt.cc), 信区: BorlandDev
标 题: 一步一步用JBuilder4开发EJB
发信站: 哈工大紫丁香 (2001年08月24日20:50:21 星期五), 站内信件
一步一步用JBuilder4开发EJB
作者:廖家序 发布时间:2001/02/07
文章摘要:
本文提供一个步骤,通过简单的例子介绍怎样在JBuilder4的集成开发环境下开发E
JB。这些步骤都很简单,对于了解EJB体系结构和一般的编程规则的人很容易理解。目的
是为了能够让大家掌握在JBuilder4下开发分布式的多层应用系统的简单、快速的方法,
达到举一反三的效果。
一、 简介
Enterprise Java Beans(EJB) 1.1规范正式定义了一个Java服务器端的组件模型
,以及应用服务器的编程接口。开发人员建立的这类型组件称为enterprise beans,包
含了企业的商业逻辑。Enterprise beans运行在EJB服务器上,该服务器为beans提供如
事务、安全性方面的服务。开发人员并不需要编程来实现这些低层的、复杂的服务,仅
仅需要知道当他们开发的beans需要这些服务的时候,这些服务是可用的。这样,他们就
可以将精力集中在处理beans内部的商业逻辑上。
分布式多层应用系统一般来说由一个运行在本地机器上的客户层、一个运行在应用
服务器上包含商业逻辑的中间层、一个后台的企业信息系统(典型的如数据库)。而在
这里我们关心的焦点是怎样开发EJB,即中间层的东西。
本文提供一个步骤,通过简单的例子介绍怎样在JBuilder4的集成开发环境下开发E
JB。这些步骤都很简单,对于了解EJB体系结构和一般的编程规则的人很容易理解。目的
是为了能够让大家掌握在JBuilder4下开发分布式的多层应用系统的简单、快速的方法,
达到举一反三的效果。
二、环境配置
1、 介绍
Borland JBuilder 是 基于Java 2 企业平台、创建跨平台环境、纯Java 的端对端
解决方案的最佳 Java 开发工具。 JBuilder4是开发EJB和基于Java的应用程序的强有力
的快速开发工具(RAD)。它提供了一个集成开发环境和大量的向导引导我们一步一步开
发我们的应用。
本文将引导读者利用JBuilder4提供的向导和特性一步一步的开发和配置两类EJB(
session beans 和entity beans)。
2、安装与配置
■ 安装:
本文所有的例子都是在Windows NT平台上完成的。因为Java本身具有的跨平台特性
,所以在其它平台上基本的步骤都是一样的。为了完成我们这篇文章的所有例子,所需
软件有:JDK1.2.2、Borland JBuilder4、Inprise Application Server 4.1、InterBa
se 5.5以及InterClient1.6。你可以使用另外的数据库系统来代替InterBase和InterCl
ient,只要你的数据库系统拥有JDBC驱动程序。所有前面列出的软件,在SUN公司和Bor
land/Inprise公司的网站上都有评估版可以下载,以满足学习的需要。如下表:
安装JBuilder4:首先安装JBuilder4 Foundation,然后安装JBuilder 4 Enterpri
se,你还可以将JBuilder4附带的文档和例子安装进去(本文中,JBuilder4安装在D:\J
Builder4)。安装完成之后,启动JBuilder4,选择"File"-"New",将弹出一个对话框,
让你选择要建立什么样的应用。点击"Enterprise"页,你将会发现,里面所有项目都是
灰色、不可选择的。不要着急,等我们安装配置好Inprise Application Server
之后,就会有了。
安装JDK1.1.2:按照提示进行安装(本文中JDK安装在D:\jdk1.2.2)。
安装Inprise Application Server 4.1:在安装IAS41时配置osagent端口为14000(
缺省)本文中IAS4.1安装在D:\IAS41目录下。
安装InterBase和InterClient:因为在后面的Entity Beans例子中,我们将要访问
数据库,在这里,我们安装InterBase5.5和针对InterBase5.5的第三类的JDBC驱动程序
InterClient1.5。按照安装提示进行下去就可以了(本文中,InterBase安装在D:\Inte
rBase Corp\InterBase目录下;InterClient安装在D:\InterBase Corp\InterClient目
录下)。
■ 配置:
我们需要配置JBuilder4,让它知道IAS41的存在。启动JBuilder4,在菜单栏选择"
Tools"-"Enterprise Setup"。在"Enterprise Setup"窗口中,如图1。在"CORBA"页中的
"select configuration"中选择"VisiBroker",然后点击旁边的"Edit"按钮,在"Edit
Configuration"窗口中配置"Path of ORB tools"为Inprise Application Server安装目
录下的"bin"子目录,在本文中是"D:/IAS41/bin"(注意:这里的路径符号为"/"),如
图2。
图1
图2
在"Application Server"页中,如图3,配置IAS安装目录为"D:/IAS41"(注意:这
里的路径符号为"/")。
图3
这两项配置完成之后,点击"OK",然后重新启动JBuilder4。
另外,我们需要建立一个由Inprise Application Server的JAR文件组成的库,这样
,JBuilder4才能够依靠库中的类来编译项目。
在JBuilder4中,选择菜单中的"Project"-"Default Project Properties…",在打
开的窗口中选择"Paths"页面中的"Required Librares"页,如图4,然后点击"Add…"按
钮。在"Select One or More Libraries"窗口中,点击"New…"按钮。在"New Library
Wizard"窗口中,点击"Add"按钮。将IAS41\lib目录下的所有的JAR文件添加进去。如图
5。完成之后如图6。设置New Library Name为:ias。
图4
图5
图6
三、Session Beans
1. 开发Session Beans
准备工作完成之后,就可以开始我们的JBuilder4--EJB之旅了。首先,我们将建立
一个JBuilder的项目(Project)。在这个项目里,我们将写一个无状态的(Stateless
)的Session Beans,命名为TellerBean。在这个Session Bean中,有一个方法用来返回
一个假定的号码,这个号码代表一个银行出纳员的编号。完成之后,我们还要建立一个
测试用的"客户"来访问这个Bean。
打开你的JBuilder4,如果JBuilder4有默认打开的项目,先关闭它。然后,建立一
个新的项目。
步骤:
1、 选择"File"-"New Project…"
2、 设置Project Name、Project directory name为"quickstart";设置Root pat
h为D:/project。(注意路径),如图7。
3、 点击"Finish"。
图7
然后,我们将建立一个EJB Group,这样,我们无论什么时候编译项目时,JBuilde
r4都将自动的建立一个包含我们的EJBs的、可配置的jar文件。
步骤:
1、 选择"File"-"New…"-"Enterprise"标签-"Empty EJB Group"-"OK"。
2、 在"Empty EJB Group Wizard"窗口中设置Name为"quickstart"。
3、 点击"OK"。如图8。
图8
下一步,我们就开始建立Bean。JBuilder4提供了建立EJB的向导,这里,我们当然
是用向导了。
步骤:
1、 选择"File"-"New…"-"Enterprise"标签-"Enterprise JavaBean"。
2、 点击"OK"之后,向导提示我们选择EJB Group,当然是用我们刚才建立的EJB G
roup。
3、 点击"Next",设置Class name为TellerBean。其它保持不变。如图9。
图9
4、 点击"Next",设置"Bean home name"为TellerHome。其它保持不变,如图10。
图10
5、 点击"Finish"。
这样,你在JBuilder4的左边窗口中将可以看到三个类,其中:TellerHome和Telle
r是为EJB容器实现的接口;TellerBean是我们自己的Bean。我们将增加一个方法到这个
Bean中。
选择"TellerBean"类,然后在这个类中增加下面的方法:
public int getTellerNo(){
return 1;
}
保存所有的文件。然后编译这个项目。(单击工具栏的 和 图标)。
现在,我们需要在远程接口中增加我们的放法签名,这样EJB容器才能够将我们的方
法暴露给远程调用的客户。
步骤:
1、 双击项目窗格中的:TellerBean.java。在内容窗格中可以看到TellerBean.ja
va的源文件。
2、 在TellerBean标签的下面,点击Bean标签,再选择Methods标签。
3、 选择int getTellerNo()。如图11。
图11
现在,我们已经完成了EJB的代码编写工作。下面将要做的工作是关于配置描述符。
配置描述符是EJB重要的组成部分之一。它将编写EJB代码与EJB的配置设置分割开。
这样,在不影响源代码的情况下,可以对应用程序进行分割和调整。
实际上,在我们的项目中已经有了配置描述符。在我们利用EJB Group向导的时候,
就生成了。当我们使用向导时,它生成了TellerBean的Java代码,增加了一个相应的配
置描述符入口,现在我们只需要调整一下就可以了。
步骤:
1、 在项目窗格双击quickstart.ejbgrp,在下面的结构窗格,展开TellerBean,单
击Container Transactions。如图12。
图12
2、在右边的内容窗格中,单击下部的"Add"按钮,为我们的方法增加一个"Require
d"的事务属性。如图13。这个"Required"的事务属性将对这个Bean的所有方法和接口起
作用。
图13
3、为了验证配置描述符设置正确,我们可以点击内容窗格上部的小工具条上的图标
来验证配置描述符的设置。如图14,我们看到,验证得到的信息是:0 errors,0 warni
ngs。
图14
4、保存所有的文件,然后编译工程。(单击工具栏的 和 图标)。
现在,所有服务器端的工作我们已经完成。下面我们将建立一个Java客户来测试我
们所写的EJB。
步骤:
1、 选择"File"-"New…"-"Enterprise"标签-"EJB Test Client"。
2、 点击"OK"之后,在EJB Test Client Wizard窗口中,设置class为Client
仅仅选择Generate main function。然后点击"OK",如图15。
图15
3、在建立的类的构造方法中,你可以看到一个"try…catch"语句块。在此语句块中
,包含Context的实例、一个TellerHome的JNDI lookup、一个参考TellerHome类型的返
回对象narrow。
4、在这些代码行之后,仍然在"try…catch"语句块中,增加下面的代码:
Teller teller=tellerHome.create();
int t=teller.getTellerNo();
System.out.println("Using Teller No is:"+t);
这几行代码建立Bean实例,调用远程方法,然后输出结果。
最后,为了能够调用远程接口,客户程序需要建立RMI/IIOP stubs。
步骤:
1、 在项目窗格中,用右键点击"TellerHome.java",选择"Properties"。
2、 在弹出窗口中,选择"Build"标签,再选择"VisiBroker",然后仅仅选择"Gene
rate IIOP"。如图16。
图16
3、保存所有的文件,然后编译工程。(单击工具栏的 和 图标)。
现在,我们已经完成了这个无状态的Session Bean和测试用客户的开发工作。
2. 配置Session Beans
我们将执行这个Bean在JBuilder4内置的EJB容器里面。
步骤:
1、 首先,运行VisiBroker Smart Agent。("Tools"-"VisiBroker Smart Agent"
)
2、 设置一个配置来运行EJB容器。"Run"-"Configuration…",编辑"default"配置
,在EJB标签中,如图16-1配置。
图16-1
3、 点击工具条上的 ,运行容器。等待容器初始化。
4、 用鼠标右键点击项目窗口的Client.java,选择"run"。
在JBuilder4窗口底部的消息窗格中,你将看到如下的消息:
"D:\JBuilder4\jdk1.3\bin\javaw -class……………
Using Teller No:1"
这时,你的测试客户程序已经成功的调用了远程接口。
四、Entity Beans
1. 建立数据库
我们已经成功的开发了一个Session Bean。不要觉得它简单,至少它是在JBuilder
4中开发EJB的基本步骤。在这一章里,我们将要开发EJB的另外一种形态--Entity Bean
s。
一个Entity Bean是一个稳定的数据的对象表现,在我们的例子里,稳定的数据是一
个关系数据库
首先,我们将在InterBase上建立一个数据库。
步骤:
1、 启动InterBase Server。
2、 启动InterClient中的InterServer。
3、 运行InterBase中的InterBase Winodws ISQL。
4、 在InterBase Winodws ISQL中,选择"File"-"Create Database…"。
5、 设置Database Name为"d:\project\quickstart\accounts.gdb,用户名和口令
用"SYSDBA"、"masterkey"。点击OK。如图17。
6、 在InterBase Winodws ISQL窗口上部的文本框中,输入下面的建立数据库表的
SQL语句:
CREATE TABLE account
( name VARCHAR(20) NOT NULL,
balance INTEGER NOT NULL,
PRIMARY KEY (name)
)
图17
7、 执行建立的SQL语句。如图18。
图18
8、 退出,回答"Yes"提交工作。
2. 开发Entity Beans
我们将利用JBuilder4所提供的向导来生成我们将要开发的Entity bean的代码,并
且将它加入到前面的项目中。
首先,我们需要为刚才建立的数据库,指定JDBC驱动程序。退出JBuilder4。从Int
erClient的安装目录下(这里是:D:\InterBase Corp\InterClient)复制interclient
.jar文件到JBuilder4安装目录下的lib子目录里面。用任意的文本编辑器打开JBuilder
4安装目录下的bin子目录里面的jdbce.config文件。在此文件的尾部加上:
# Add other database drivers here
addpath ../lib/interclient.jar
保存此文件,重新打开JBuilder4。
检查以下我们前面所做的工作:
1、 在JBuilder4中,选择"Tools"-"JDBC Explorer"。
2、 在JDBC Explorer窗口中,选择"File"-"New…"。
3、 选择"Driver"为:interbase.interclient.Driver;"URL"通过旁边的浏览按钮
定位在我们刚才建立数据库的地方(D:\project\quickstart\accounts.gdb)。如图19
。
图19
4、"OK"之后,在JDBC Explorer中展开我们刚刚建立数据库URL。用户名:SYSDBA;
密码:masterkey。登录之后,展开树,就可以看到我们所建立的表和表中的列了。如图
20。
图20
现在,我们就可以开始建立我们的Entity bean了。
步骤:
1、 在JBuilder4中,选择"File"-"New…"-"Enterprise"标签--"EJB Entity Bean
Modeler",点击"OK"按钮之后,在向导的步骤1里,将此Bean加入已经建立的EJB Grou
p(quickstart.ejbgrp)。
2、 利用前面建立的数据库URL(Driver;interbase.interclient.Driver;URL:
jdbc:interbase://localhost/D:\project\quickstart\ACCOUNTS.GDB),用户名
:SYSDBA;口令:masterkey;登录到数据库中,点击"Next"。如图21。
图21
3、 根据提示,选择ACCOUNT表,"Next",选择表中所有的列,"Next"到"Finish"。
4、 保存所有的文件,然后编译工程。(单击工具栏的 和 图标)。
这样,我们实际上就已经完成了这个Entity Bean的开发工作。JBuilder4的向导已
经在配置描述符中增加了一个入口和一个数据源的入口。
一个Entity Bean只不过是生成的代码。下面我们将建立一个客户程序来访问这个E
ntity Bean。这个客户程序将建立四个Entity Bean的实例,在数据库的Account表中建
立四行数据。
使用JBuilder4的EJB Test Client Wizard,在这一次我们建立的测试客户程序,将
依靠Account EJB,根据提示,使用缺省的类名:AccountTestClient1就可以了。利用向
导,生成main函数,然后在生成的main函数的try…catch语句块中,"accountHome = (
AccountHome) PortableRemoteObject.narrow(ref, AccountHome.class);"的后面,加
入下面的代码:
Account ac1=accountHome.create("John",150);
Account ac2=accountHome.create("Paul",150);
Account ac3=accountHome.create("George",150);
Account ac4=accountHome.create("Ringo",150);
用鼠标右键点击项目窗格的AccountHome.java文件,选择"Properties…"。在弹出
窗口中的"Build"标签中的"VisiBroker"标签中,选择"Generate IIOP",点击"OK"。
保存所有的文件,然后编译工程。(单击工具栏的 和 图标)。
3. 配置
我们仍然在JBuilder4中运行EJB容器。客户程序将依靠运行在EJB容器中的Entity
Bean在数据库的Account表中建立四行数据。
首先,建立一个库,这样当我们运行EJB容器的时候,InterClient JDBC驱动程序能
够被添加到classpath。
步骤:
1、 在JBuilder4中选择"Project"-"Project Properties…"。
2、 在"Required Libraries"标签中,点击"Add…"。
3、 在弹出的窗口中,点击"New…"。
4、 将JBuilder4安装目录下的lib子目录里的interclient.jar文件添加到"Librar
y Paths"中。
5、 "Name"值设为:InterClient。
完成之后,就可以运行你建立的应用了。
确认VisiBroker Smart Agent、InterBase Server和InterClient的InterServer仍
然在运行。
点击工具条上的 ,运行容器。等待容器初始化。
用鼠标右键点击项目窗口的AccountTestClient1.java,选择"run"。
完成之后,运行JDBC Explorer。
展开"interbase://localhost/D:\project\quickstart\ACCOUNTS.GDB",点击"Tab
les"下的ACCOUNT表。在右边窗格选择Data标签。你将看到程序所创建的新的四行数据。
如图22。
图22
作者会员名:liaolion
--
I know i love you before i met you.
I've been waiting all my life ... ...
yours,
freely
※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.245.174]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:208.990毫秒