| |
3、为了验证配置描述符设置正确,我们可以点击内容窗格上部的小工具条上的 图标来验证配置描述符的设置。如图14,我们看到,验证得到的信息是:0 errors,0 warnings。 图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",然后仅仅选择"generate iiop"。如图16。  图16 3、保存所有的文件,然后编译工程。(单击工具栏的 和 图标)。 现在,我们已经完成了这个无状态的session bean和测试用客户的开发工作。 2. 配置session beans 我们将执行这个bean在jbuilder5内置的ejb容器里面。 步骤: 1、 首先,运行visibroker smart agent。("tools"-"visibroker smart agent") 2、 设置一个配置来运行ejb容器。"run"-"configuration…",编辑"default"配置,在ejb标签中,如图16-1配置。  图16-1 3、 点击工具条上的 ,运行容器。等待容器初始化。 4、 用鼠标右键点击项目窗口的client.java,选择"run"。 在jbuilder5窗口底部的消息窗格中,你将看到如下的消息: "d:/jbuilder5/jdk1.3/bin/javaw -class…………… using teller no:1" 这时,你的测试客户程序已经成功的调用了远程接口。 四、entity beans 1. 建立数据库 我们已经成功的开发了一个session bean。不要觉得它简单,至少它是在jbuilder5中开发ejb的基本步骤。在这一章里,我们将要开发ejb的另外一种形态--entity beans。 一个entity bean是一个稳定的数据的对象表现,在我们的例子里,稳定的数据是一个关系数据库 首先,我们将在interbase上建立一个数据库。 步骤: 1、 启动interbase server。 2、 启动interclient中的interserver。 3、 运行interbase中的ibconsole。 4、 在ibconsole中,选择左边窗口的interbase servers -> local server双击。用户名和口令用"sysdba"、"masterkey"。 5、 右击databases,选择create database... 6、 在create database窗口中的alias中输入accounts,在file(s)中filename(s)中输入d:/project/quickstart/accounts.gdb,然后点ok完成。 7、 选择ibconsole的菜单tools -> interactive sql...,在interactive sql-accounts窗口上部的文本框中,输入下面的建立数据库表的sql语句: create table account ( name varchar(20) not null, balance integer not null, primary key (name) ) 8、 选择query -> excute。 注:sql语句最好自己写上去,copy上去的,可能在excute的时候会出错,因为有非法的字符。你只要把空格去掉就可以了。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 我们将利用jbuilder5所提供的向导来生成我们将要开发的entity bean的代码,并且将它加入到前面的项目中。 首先,我们需要为刚才建立的数据库,指定jdbc驱动程序。退出jbuilder5。从interclient的安装目录下(这里是:d:/interbase corp/interclient)复制interclient.jar文件到jbuilder5安装目录下的lib子目录里面。用任意的文本编辑器打开jbuilder5安装目录下的bin子目录里面的dbpilot.config文件。在此文件的尾部加上: # add other database drivers here addpath ../lib/interclient.jar 保存此文件,重新打开jbuilder5。 检查以下我们前面所做的工作: 1、 在jbuilder5中,选择"tools"-"database pilot"。 2、 在database pilot窗口中,选择"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、 在jbuilder5中,选择"file"-"new…"-"enterprise"标签--"ejb entity bean modeler",点击"ok"按钮之后,在向导的步骤1里,将此bean加入已经建立的ejb group(quickstart.ejbgrp)。 2、 选取schemas and table types中的schemas。利用前面建立的数据库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的开发工作。jbuilder5的向导已经在配置描述符中增加了一个入口和一个数据源的入口。 一个entity bean只不过是生成的代码。下面我们将建立一个客户程序来访问这个entity bean。这个客户程序将建立四个entity bean的实例,在数据库的account表中建立四行数据。 使用jbuilder5的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. 配置 我们仍然在jbuilder5中运行ejb容器。客户程序将依靠运行在ejb容器中的entity bean在数据库的account表中建立四行数据。 首先,建立一个库,这样当我们运行ejb容器的时候,interclient jdbc驱动程序能够被添加到classpath。 步骤: 1、 在jbuilder5中选择"project"-"project properties…"。 2、 在"required libraries"标签中,点击"add…"。 3、 在弹出的窗口中,点击"new…"。 4、 将jbuilder5安装目录下的lib子目录里的interclient.jar文件添加到"library paths"中。 5、 "name"值设为:interclient。 完成之后,就可以运行你建立的应用了。 确认visibroker smart agent、interbase server和interclient的interserver仍然在运行。 点击工具条上的 ,运行容器。等待容器初始化。 用鼠标右键点击项目窗口的accounttestclient1.java,选择"run"。 完成之后,运行jdbc explorer。 展开"interbase://localhost/d:/project/quickstart/accounts.gdb",点击"tables"下的account表。在右边窗格选择data标签。你将看到程序所创建的新的四行数据。 如图22。 福建JSP技术网
--> |
|