当前位置导航:炫浪网>>网络学院>>编程开发>>JAVA教程>>J2EE

一步一步用JBuilder5开发EJB(下)


  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。
  
相关内容
赞助商链接