|
|
| IBM WebSphere Studio Application Developer Workshop ?C 实验室练习 |
作者:
文章来源:
访问次数:76次
加入时间:2007年04月06日
|
|
IBM WebSphere Studio Application Developer Workshop ?C 实验室练习
开发 Enterprise JavaBeans
练习内容 现在Enterprise Javabeans是企业应用程序的主要组成部分。Enterprise Javabeans或称为EJBs一般都包含商务逻辑。通过有Servlet、JSP以及客户应用程序组成的Enterprise Javabeans可以创建有效的J2EE应用程序。WebSphere Studio Application Developer 是一个可以生成Enterprise Javabeans也可以把EJBs添加到J2EE应用程序的工具。所有这些都依赖于内建的EJB v1.1技术规范选项。WebSphere Studio Application Developer在应用程序还提供了一个测试EJBs单体的内建EJB测试环境。WebSphere Studio Application Developer 有一个开发描述编辑器把EJBs添加入J2EE应用中。本练习着重描述在把EJBs添加入J2EE应用时的EJB创建、检验和必要的开发描述的更新。为了使用EJB单体测试环境测试EJBs还将介绍WebSphere v4.0测试环境。
使用条件 用户必须已安装DB2 (version7.2)和WebSphere Studio Application Developer, 理解基本的EJB概念。用来建EJBs的YourBank源代码文件必须位于c:yourbanklab1。
你将会做什么 完成这个练习后你将掌握使用WebSphere Studio Application Developer创建、测试会话和管理永久Enterprise Javabeans容器的必要步骤,掌握怎么样根据EJB v1.1规范检验EJBs。创建和检验EJBs后,为了测试EJBs,将能根据模板和scratch创建一个WebSphere v4.0测试环境的配置和实例。最后使用EJB单体测试环境测试你的EJBs。
介绍 实体和会话EJBs在应用程序中用做商务逻辑。实体EJBs主要用来访问和管理应用程序中的永久数据。会话EJBs访问实体EJBs和使用实体EJBs中的数据。在本练习中将根据YourBank应用程序的scratch创建帐号和转帐EJBs。帐号EJB代表的是一个指定用户的并有一定金额的储蓄或支票帐号。当在事务中给定两个帐号和转帐的金额,转帐会话EJBs使用帐号实体EJB在不同的帐号EJBs间转帐。
**注意**解决方案在最后第五部分
练习说明
第一部分:安装
1. 从开始菜单启动IBM WebSphere Studio Application Developer(开始 -->程序 --> IBM WebSphere Studio Application Developer --> IBM WebSphere Studio Application Developer).
2. 通过Perspective --> Open --> Other --> J2EE打开J2EE视图。检查J2EE是否在浏览器中出现。J2EE视图不同于其他视图,因为它是基于模块(EJB或Web)类型组织项目的。
3. 创建新EJB项目
_ 从主菜单中选择File --> New --> Project,然后选择EJB,然后根据向导设计EJB。你也可以点击Create an EJB Project 工具条按钮(在工具条左边第九个按钮)
_ EJB项目命名:YourBankEJBModule.
_ 检查确定Use default location
_ EAR项目使用YourBankEAR命名,然后点击Finish.
YourBankEAR项目包含YourBank应用程序的全部内容。
_ 确认已创建的EAR项目是YourBankEAR。展开Enterprise Applications。与YourBankEJBModule相应的模块在EJB模块下的J2EE视图中出现。
通过选择J2EE视图底部的标签打开浏览视图。检查两个新项目YourBankEJBModule和YourBankEAR已被创建。当对J2EE应用程序操作时也可使用该视图,但不能用来按类型组织模块。
第二部分:创建帐号的管理永久实体bean容器 1.在J2EE视图的主菜单中选择File --> New --> Enterprise bean.
你也可以点击Create an Enterprise Bean工具条按钮(在工具条左边第八个按钮)启动一个EJB创建向导。
_ bean命名为Account.
_ 选择YourBankEJBModule作为EJB项目
_ 选择Entity bean with container-managed persistence (CMP) fields作为bean类型
_ 检查Default package root field是ejbModule.
_ 在Bean class field输入com.ibm.yourbank.ejb(在帐号bean之前)。注意Home和Remote接口自动填写
2.下一步是添加由容器管理的永久字段。在Add persistence fields to the bean会话中点击Add……
_ 输入accountNumber作为字段名
_ 字段类型选择long
_ 输入0作为初始值
_ 保证Key field被选择
_ 点击Add
4. 你已创建一个永久字段,但现在还要创建三个
_ 输入字段名为type,字段类型下拉框中选择int,输入1作为字段初始值,保留其余选择框的非选择状态。点击Add。
_ 输入字段名为balance,字段类型下拉框中选择float,输入0作为字段初始值,确保Access with getter and setter methods和 Promote getter and setter methods to remote interface选择框被选中。这些选择框被选中的情况下,金额可以从bean中的方法中引用和设置。这些选择框使Remote接口的客户利用这些方法有效的取得和设置金额。
_ 点击Add。
_ 输入字段名为accountOwner,字段类型下拉框中选择java.lang.String,输入“”作为字段初始值,保留选择框的非选择状态。
_ 点击Add。
_ 点击Close。
_ 选择Next。
_ 在EJB属性窗口中,点击Add Package... 并且把javax.ejb加到bean类语句的导入列表中。检查下列信息。
4.点击Finish。管理永久实体bean容器将被生成。
在J2EE视图中Account bean 应该出现在EJB Modules and YourBankEJBModule的下面。根据下面的插图检查items Account, AccountBean, AccountHome and AccountKey
是否在 Account bean显示。
5.接着你需要创建在金额小于0时调用的异常。
_ 在主菜单中选择File --> New --> Other。在不同向导的窗口中选择Java和Java Class。点击 Next。
Create new Java class wizard启动
_ 在Folder中输入/YourBankEJBModule/ejbModule
_ 在package中输入com.ibm.yourbank.exception
_ file命名为InsufficientFundsException.
_ 对于超类点击Browse...
_ 在超类选择窗口的顶部输入字段中输入exception
_ 选择Exception点击OK
_ 选择Constructors from superclass选择框
_ 点击Finish。
6.你刚才定义的InsufficientFundsException.java文件出现在编辑器视图中。关闭文件,确保J2EE视图已打开。扩展EJB Modules --> YourBankEJBModule --> Account。
7.右键点击,在AccountBean打开文件AccountBean.java。选择Openwith-> Enterprise Bean Java Editor。做如下更改:
_ 在包声明后,加入下列导入语句,导入刚才创建的InsufficientFundsException:
import com.ibm.yourbank.exception.InsufficientFundsException;
_ 滚到文件末尾,在setBalance方法后添加如下代码(注意:为了节约时间,把文件c:yourbanklab1snippet1.java的代码拷贝到AccountBean.java)
- /**
- * Initialize fields in account.
- */
- public void accountInitialize(int type, float balance, String
- accountOwner)
- throws javax.ejb.CreateException, javax.ejb.EJBException {
- this.type = type;
- this.balance = balance;
- this.accountOwner = accountOwner;
- }
- /* adds the specified amount to the account balance and returns
- * the new balance
- */
- public float add(float amount) {
- balance += amount;
- return balance;
- }
- /* subtracts the specified amount from the account balance and
- * returns the new balance
- */
- public float subtract(float amount)
- throws InsufficientFundsException {
- if(balance < amount) {
- throw new InsufficientFundsException
- ("Insufficient funds");
- }
- balance -= amount;
- return balance;
- }
注意编辑器中文件名的“*”。“*”表示文件已被修改。
_ 增加三个方法后选择File --> Save保存文件。在AccountBean的Outline栏内应该可以看到add(float) 和 subtract(float)方法
8.在把两个方法都加到bean中后,你需要把它们加到remote interface。只有当方法在Account bean 的Remote interface中存在时客户端才可以使用。
_ 如果AccountBean.java已关闭,打开此文件
_ 转到outline视图,选择accountInitialize, add 和 subtract这些你刚才创建的方法。按住Ctrl键可以一次选择多个方法。
_ 选择方法后,点击右键选择Enterprise Bean?>Promote to Remote Interface。客户端现在可以使用这三个方法了。
注意:如果你的右击菜单中没有Enterprise Bean选项,你必须从J2EE视图中打开AccountBean。简单地用打开AccountBean.java的方法切换到J2EE视图是没有Enterprise Bean选项的,必须在J2EE视图中选择并打开AccountBean。把方法加到Remote Interface是一个J2EE操作,而且只有在J2EE视图中才有这个功能。如果你仍然不能把这些方法加到remote interface,可以用人工的方法把下列声明加到文件 Account.java的Remote Interface中(在文件c:yourbanklab1snippit2.java中也有效)
9.在task视图中添加一个入口处理InsufficientFundsException不能解决的情况。双击这个入口打开Account.java文件。在文件的最上面添加下列包导入语句,导入InsufficientFundsException
import com.ibm.yourbank.exception.InsufficientFundsException;
_ 检查所有已列出的商务方法。滚动到文件的末尾,注意到accountInitialize, add, 和 subtract方法已被添加。你只看到这些方法的声明因为这些是接口。
_ 保存和关闭文件。
10.接下来必须把Account EJB字段映射到数据库的列上。既然你已经定义了Account EJB,你可以使用Top Down mapping strategy定义数据库的字段。
_ 在J2EE视图的EJB Modules下,选择YourBankEJBModule
_ 右键点击并选择Generate ?> EJB to RDB Mapping
_ 启动Create new EJB/RDB Mapping向导。确保选择了Top Down选项然后点击Next
_ 在Target Database field中选择DB2 UDB V7.2.
_ 在Database Name field中输入BankData。
_ 在Schema name field中输入NULLID。
_ 选择Generate DDL选择项
_ 点击Finish
11.检查schema文件和map文件是否已创建。在Navigator窗口中的YourBankEJBModule ?>ejbModuleMETA-INF 文件夹选择Schema/Schema.dbxmi和Map.mapxmi(在这里可以看见配置描述文件ejb-jar.xml,它包含有关Account EJB的所有信息)。
_ 在map编辑器中右键点击文件名打开Map.mapxmi文件浏览和检查YourBankEJBModule的EJB/RDB映射。
第三部分: 在WebSphere Application Server V4.0的Unit Test environment(单体测试环境)中的实体Bean配置和测试
本章的重点是检查你的Account实体Bean是否正确完成。为了做到这一点,你需要创建一个数据库,一个数据库表,给enterprise bean指定一个数据源名,给服务环境定义一个数据源,生成配置代码以及在WebSphere Application Server V4.0 测试环境中启动enterprise bean。为测试创建一个你自己的测试服务实例。
在DB2中创建应用程序数据库
1.为了准备创建应用程序数据库和数据源,我们使用一个特定的用户帐号。大多数情况下使用普通帐号比使用特定用户帐号更好。你在Windows 操作系统中创建的普通帐号是USERID,口令是 PASSWORD。如果你希望使用已存在的帐号,例如你当前登录的帐号,你需要用这些值替换下列适当的USERID和PASSWORD。
_ 点击windows的开始按钮,选择程序 --> 管理工具 --> 域用户管理
_ 在用户管理窗口中,选择Guest用户名
_ 点击User菜单,选择Copy,在Guest拷贝帐号中,填写:
Username: USERID
Full Name: WebSphere Lab
Description: DB2 User for MyBank Application
Password: PASSWORD
Confirm Password: PASSWORD
点击Add。点击Close(在NT Workstation上点Cancel)。退出User Manager。
2.创建在Account EJB 的top-down mapping of the fields中指定的BankData数据库
_ 点击开始-->程序-->IBM DB2-->Command Window打开db2命令窗口
_ 敲入命令:db2 create db BankData
3.创建数据库后,现在你可以在数据库中创建保存帐号信息的表。当在创建EJB to RDB mapping时,创建帐号表的SQL语句同时也被创建。
_ 在db2窗口中,把目录更改为<WSAD root directory>YourBankEJBModuleejbModuleMETA-INF。(例如C:Program
FilesIBMApplication DeveloperworkspaceYourBankEJBModuleejbModuleMETA-INF)
_ 根据在创建EJB to RDB mapping时创建的文件table.ddl,执行下列命令创建表。
db2 update db cfg for BankData using applheapsz 256
db2 connect to BankData
db2 grant createtab, connect on database to user USERID
This grants basic database privileges to the User you
just created.
db2 connect reset
db2 connect to BankData user USERID using PASSWORD
This allows you to create the database tables under the schema for USERID.
db2 -tf Table.ddl
忽略任何Schema DB2ADMIN 或 table DB2ADMIN.ACCOUNT已存在的信息。
_ 你要在表中录入一对数据。在命令窗口中输入下列命令在ACCOUNT表中添加一条记录。
db2 insert into account(accountnumber, type, balance,accountOwner) values(1, 1, 15.15, ‘Tester, Joe’)
db2 insert into account (accountnumber, type,balance, accountOwner) values(2, 1, 30.15, ‘User, Jane’)
_ 执行下列命令,检查数据已正确录入至db2
db2 select * from account
列出两条记录。
_ 把应用程序绑定到数据库(文件db2cli.lst包含了为DB2 CLI 和 DB2 ODBC 驱动程序创建包所需的绑定文件(.bnd)列表。)
cd c:sqllibnd
db2 bind @db2cli.lst blocking all grant public
db2 connect reset
5. 数据库定义后,现在你需要定义Account EJB存储帐号的数据源。当引用数据源时你需要指定Account EJB使用的JNDI名。
_ 为了给你的EJB定义数据源名,切换到Navigator视图,找到YourBankEJBModule/ejbModule/META-INF目录。右键点击文件ejb-jar.xml,选择Open with-->EJB Extension Editor。
_ 在EJB Extension Editor中选择Binding页(tab页位于编辑器底部)
_ 展开YourBankEJBModule,点击Account Bean。
_ 在右面栏中,指定Account EJB的JNDI Name为ejb/Account,指定数据源的JNDI Name为jdbc/YourBank
_ 保存和关闭文件
5.当你在WebSphere Application Server运行实体bean时,指定实体bean的数据源。当为实体bean定义JNDI数据源时必须使用在第三步使用的名字。
_ 选择Perspective --> Open --> Server。Server Perspective一般在WebSphere v4.0测试环境中使用。注意到Server Perspective的另一个图标被加到了左边的Perspective列表。
_ 点击File-->New-->Server Project创建服务工程(工具条上也有一个图标完成相同的功能)
_ 在Create a New Server Project向导中指定你的服务工程名为TestServer,保留工程的默认位置。点击Finish。
_ 添加服务实例和服务配置。点击File-->New-->Server Instance and Configuration,如下显示。
_ 在Create a new server instance and configuration向导中,指定服务名为YourBankServer ,使用TestServer作为服务工程的目录。
_ 展开WebSphere Servers ,服务实例类型选择 WebSphere v4.0 Test Environment,点击Next.
_ 在WebSphere Server Configuration设置中接受8080的服务端口号然后选择Finish。
_ 在Server Configuration视图中,展开Server Configurations,双击YourBankServer.
_ 在编辑器中,在视图底部选择Datasource页,在JDBC Driver List中选择Db2JdbcDriver
(COM.ibm.db2.jdbc.DB2ConnectionPoolDataSource)。
注意:如果包含DB2 Java类DB2 zip文件不在c:/programfiles/sqllib/java/db2java.zip, 你必须在JDBC驱动列表中选择Db2JdbcDriver的编辑按钮并且指出the db2java.zip文件正确的路径。
_ 点击Add... 在Datasources defined in the JDBC driver selected above的右边。
_ 在Add a Datasource栏中,指定Name为YourBankData, JNDI name为jdbc/YourBank, Database name 为BankData。输入“userid” 为默认用户,“password” 为口令。点击OK。
_ 保存并关闭文件 YourBankServer。
5. EJB应用程序必须在指定的一个服务器上运行。你需要把应用程序加到刚才创建的服务器配置中。
_ 在Sever Perspective的Server Configurations下的Server Configuration视图中,右键点击YourBankServer ,选择Add Project --> YourBankEAR.
应用程序可以在创建的测试服务器上运行了。
_ 检查YourBankServer是YourBankEJBModule 的首选服务器。切换到J2EE perspective的Navigator视图。右键点击YourBankEJBModule,选择Properties,然后选择Server Preference。检查YourBankServer已被选择,点击Apply。 点击OK。
虽然在最后一步把应用程序添加到了服务器配置中,但还需要指定应用程序运行的首选服务器。可以把工程加到多个配置中,然后指定一个特定的服务器,你就可以让应用程序拥有多台服务器,但只能在某一个默认的服务器上运行。
6.在EJB测试前,EJB容器用来支持应用程序运行的代码必须创建。这些代码被称为配置代码。
_ 切换到J2EE perspective的J2EE视图,展开EJB Modules,右键点击YourBankEJBModule ,选择Generate -> Deploy and RMIC code。
_ 在Deploy, and RMIC, selected enterprise beans(s)向导中,检查Account bean 已选择并点击Finish。
7.在代码配置后,就可以测试Account实体Bean。在刚才创建的服务器上的WebSphere Application Server V4.0 Unit Test environment中启动Account实体Bean
_ 在Server Perspective的Server Control Panel视图中选择Servers。(tab页在底部)
_ 右键点击服务器实例YourBankServer ,选择Start启动WebSphere Application v4.0 Test Environment.
如果Console视图没有自动打开,那么选择Console 视图(底部的tab页)来打开,观察你的服务器启动直到Default Server open for e-business显示。
_ 在Server Perspective的Navigator视图,右键点击YourBankEJBModule,选择Run on Server。 启动WebSphere Application Server V4.0 Unit Test environment,IBM EJB Test Client在Browser视图中启动。
6.使用IBM EJB Test Client 测试Account实体Bean
_ 当启动服务器时IBM EJB Test Client在Server Perspective的Browser View启动。如果没有启动,就在browser view输入http://localhost:8080/UTC ,点击GO 。
_ 为了在IBM EJB Test Client 测试EJB,在EJB Test Client点击JNDI Explorer, JNDI Explorer如下图所示(可能要花30秒时间)。
_ 展开ejb ,点击Account (com.ibm.yourbank.ejb.AccountHome_Stub)。
_ 在References view中展开EJB References直至出现Account findByPrimaryKey(AccountKey)。
_ 点击Account findByPrimaryKey(AccountKey) ,可以看见Parameters框架更改。
_ 在Paramter/Value框中点击最右边符号的向下箭头,选择 com.ibm.yourbank.ejb.AccountKey(long).
_ 输入值1,点击Invoke and Return。 把1传给类AccountKey的构造器。
_ 在Parameters框架中点击Invoke。
把AccountKey对象传给fEJB的home interface的indByPrimaryKey()方法。
_ 着重看在Results区域Account对象。选择 Work with Object。
在 References 段更新中可以看到EJB References 树。如果展开Account (com.ibm.yourbank.ejb.AccountKey@1), 可以看见EJB的remote interface方法。
_ 点击float getBalance()方法。显示的Parameters会更新和显示float getBalance() 方法。在Parameters栏中点击 Invoke ,在Results中看到金额。
_ 在Results中显示帐号是1的金额。这说明你的EJB工作正常。关闭网页浏览器。
_ 仍然在Server Perspective中,切换到 Server Control Panel 视图,右键点击YourBankServer, 选择 Stop 终止测试服务。
第四部分:创建无状态的传输会话EJB
_ 1. 在EJB module 增加一个新的会话bean。
打开J2EE perspective ,在主菜单中选择 File-->New-->Enterprise Bean 或点击Create an Enterprise Java Bean 工具条按钮。启动new Enterprise Java Bean先导。
_ bean命名为 Transfer.
_ 选择 Session bean 作为Bean类型。 (默认)
_ 浏览EJB工程YourBankEJBModule。
_ 默认的包的根设成ejbModule。
_ 把包的名字传给通过在Bean class域中输入com.ibm.yourbank.ejb生成的类(前面的TransferBean)。检查是否传到了其他的域。
_ 点击 Next。
_ 在下页的mport statements required for the bean class的列表中添加javax.ejb, javax.naming, javax.rmi 和 java.rmi (提示: 使用Add Package按钮)。
_ 点击Finish 生成会话bean类。
2. 创建传输Enterprise Java Bean后,需要添加一些附加的方法。在J2EE perspective 的J2EE 视图中,打开TransferBean。
_ 在类中添加下列导入语句。
import com.ibm.yourbank.exception.InsufficientFundsException;
_ 在类的开头添加下列字段。这些字段在传输时使用。
private AccountHome accountHome = null;
_ 在TransferBean 中添加下列方法。 (注意:为节约时间,把文件c:yourbanklab1snippit3.java 中的代码拷贝到文件TransferBean.java)。
_ 在TransferBean.java的ejbCreate()方法中添加如下行代码。
accountHome = getHome();
_ 在TransferBean下的Outline栏中可以看到getBalance(long), transferFunds(long, long, float) 和 getHome() 方法。所以方法添加后保存文件。
5. 所有方法添加并保存后,需要在remote接口中添加getBalance 和 transferFunds 。 只有传输的remote接口的方法对客户端有效。
_ 保证还在J2EE Perspective 的J2EE视图。为了在remote接口中添加上述方法,在java编辑器中打开TransferBean。在Outline中选择getBalance 和 transferFunds。按住Ctrl键可以一次选择多个方法。选择方法后,右键点击,选择 Enterprise Bean?>Promote to Remote Interface.
注意:如果右击菜单中没有Enterprise Bean,那么需要在J2EE Perspective的J2EE视图中打开TransferBean。在TransferBean.java打开的情况下简单的切换到J2EE视图是不能显示Enterprise Bean选项;必须在J2EE视图被选择时打开TransferBean。把方法加到Remote Interface是一个J2EE操作,而且只有在J2EE视图中才有这个功能。如果你仍然不能把这些方法加到remote interface,可以用人工的方法把下列声明加到文件 Transfer.java的Remote Interface中(在文件c:yourbanklab1 snippit4.java中也有效。
public float getBalance(long acctId) throws javax.ejb.FinderException, java.rmi.RemoteException ;
public void transferFunds(long fromAcctId, long toAcctId,float amount) throws InsufficientFundsException,javax.ejb.FinderException, java.rmi.RemoteException ;
6. 在task视图中添加一个入口处理InsufficientFundsException不能解决的情况。双击这个入口打开Transfer.java文件。在文件的最上面添加下列包导入语句,导入InsufficientFundsException
import com.ibm.yourbank.exception.InsufficientFundsException;
_ 保存文件。
_ 检查所有已列出的商务方法。滚动到文件的末尾,注意到getBalance和transferFunds方法已被添加。你只看到这些方法的声明因为这些是接口。
_ 关闭文件。
第五部分:测试传输会话EJB 这部分的重点是检查两个EJBs是否正确。首先需要指定一个Account EJB引用,然后给Transfer EJB指定JNDI名。接着检查应用程序的J2EE适应性。你需要为会话bean生成一个配置。最后,在WebSphere Application Server V4.0 Unit Test environment中启动enterprise bean。创建一个新的与Account bean测试配置无关的单体环境。新服务创建后,可以在IBM EJB Test Environment中测试传输会话bean。
1. 为Transfer EJB 指定一个Account EJB引用。
_ 在J2EE Perspective的Navigator视图,展开YourBankEJBModuleejbModuleMETA-INF。
_ 右键点击ejb-jar.xml,选择Open With --> EJB Editor。
_ 点击References tab页,选择EJB References。列出Account和Transfer EJBs。
_ 点击Transfer EJB Bean ,点击Add。
_ Name输入ejb/Account.
_ Type选择Entity.
_ Home输入com.ibm.yourbank.ejb.AccountHome.
_ Remote输入com.ibm.yourbank.ejb.Account.
_ Link输入Account.
_ 点击 OK。
_ 保存关闭文件。
2.为Transfer EJB 指定JNDI名。
_ 右键点击ejb-jar.xml,选择Open With --> EJB Extension Editor。
_ 点击Binding tab页,展开YourBankEJBModule。
_ 选择Transfer ,在JNDI name域中输入ejb/Transfer。既然是会话bean,不需要给EJB指定数据源。
_ 展开YourBankEJBModuleTransfer,选择 EjbRef ejb/Account
_ 在JNDI name域中输入ejb/Account。
_ 保存关闭文件。
3.接着检查代码的J2EE适应。右键点击YourBankEJBModule,选择Run Validate。
WebSphere Studio Application Developer会按照J2EE v1.2规范检查工程。位于YourBankEJBModule的任何EJB mappings也会检查。如果有不合规范的地方,会在Tasks视图列出。通过在工程属性中设置检查项目,控制检查的范围。
4. 在J2EE Perspective的J2EE视图中,右键点击YourBankEJBModule,选择Generate -->Deploy and RMIC Code.... 根据配置,RMIC,enterprise bean(s)向导, 选择Transfer bean并点击Finish。
5.现在准备在WebSphere Application Server v4.0 Unit Test environment 中运行程序。即使以前在创建的服务器上测试过EJB应用程序, 你还要在测试你EJBs的第一个服务器的基础上创建另一个服务器配置。在多服务的配置下,可以方便地切换不同的设置下的应用程序的测试。
在WebSphere Studio Application Developer v 4.0中根据模板创建一个测试服务时有一个bug。这个问题应该在Fix Pack 1 (4.0.2)修正。跳过步骤6并使用YourBankServer测试会话bean。
为了创建另一个配置,首先创建一个基于已存在的服务器设置的模板。模板包含第三部分定义的数据存储信息,以节约建立新单体测试服务器所花费的时间。
_ 在Window菜单中选择Preferences。
_ 在Preferences窗口中,展开Server,选择 Defaults and Templates。
_ 选择Add Template.
_ 在Create a New Server Template窗口中,模板命名为YourBank Template ,意思为 Template for testing the YourBank Application。
_ 展开Server Configurations,选择YourBankServer。
_ 点击Finish。
_ 点击OK ,关闭Preferences窗口。
_ 创建模板后,现在创建单体测试服务器。切换到Server Perspective,选择Create Server Instance and Configuration按钮。
_ 输入服务器名YourBankServer2,展开WebSphere Servers,选择WebSphere v4.0 Test Environment.
_ 在Server configuration type域中,选择YourBank Template作为模板。
_ 点击Finish。
_ 在Server Configuration视图中,右键点击并选择YourBankServer2的Edit。既然你根据在定义YourBank 数据源时的服务器实例创建了模板,为了节约配置时间YourBankServer2也有定义的数据源。 切换数据源tab页,注意定义的YourBankData
数据源。完成后关闭Server Configuration窗口。
_ 当定义了新的测试服务器后,必须把这个服务器指定为运行YourBankEJBModule 工程的首选服务器。在Server Perspective的Navigator视图中,右键点击YourBankEJBModule 并选择Properties。
_ 在YourBankEJBModule的属性窗口中,从左边列表中选择Server Preference 并选择YourBankServer2。
_ 点击Apply 然后点击OK。
6. 准备启动YourBankServer2。切换到Server Perspective 的Servers视图,在右键菜单中选择Start,启动服务器
7.服务器启动后,可以使用IBM EJB Test Client测试传输会话Bean。
_ 在Server Perspective的Navigator视图中,右键点击YourBankEJBModule ,选择 Run on Server。
_ 为了在IBM EJB Test Client 中测试EJB,点击JNDI Explorer ,显示JNDI Explorer 。
_ 展开ejb ,点击Transfer,然后在References view展开EJB References直至看见Transfer create()。
_ 点击Transfer create(),出现Parameters修改区域。点击Parameters区的Invoke。
_ 重点看Results区的Transfer Object。点击Work with Object缩小对象的类型范围并恢复EJB home接口引用。在References更新区域可以看见EJB References。
_ 展开Transfer (1),可以看见EJB的remote接口方法。点击float getBalance(long)方法。 显示的Parameters区域会更新和显示float getBalance(long) 方法。
_ 输入一个1值,点击Invoke。你可以在Results中看见金额Results。EJB运行正常。
8.在Server Perspective中,切换Server Control Panel视图,终止服务器环境。右键点击YourBankServer2,选择Stop。
加载Lab1练习:
1. 在DOS窗口中运行C:yourbanksolutionslab1CfgLab1.bat
2. 到入服务器配置。
_ File->New->Project... Server, Server Project,点击 Next。
_ 输入工程名TestServer,点击Finish。
_ File->Import,选择 Zip 文件,点击Next。
_ 浏览C:YourBankSolutionsLab1TestServers.zip
_ Enter "TestServer" as your Folder name
_ 点击Finish
*注意* 导入的测试服务器假定是默认目录结构。如果你不同的目录结构而不是默认的,你必须以练习1的第三部分人工配置服务器。
3. 在Application Developer中导入yourBankAfterLab1.ear文件。
_ File -> Import
_ 点击Next
_4. Application Developer准备就绪。
在练习中做了什么 在此次练习中,你创建了一个实体Bean和会话Bean并且在WebSphere v4.0 Test environment中测试了它们。你在实体Bean的后台创建了一个DB2表,并为YourBank保存帐号信息。 在WebSphere Application Server V4.0 Test environment 中测试了你的EJBs 并且创建了一个基于模板的服务器配置。
|
|
|