快速业务通道

基于EJB的商务预订系统 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17
开发

客舱预订系统是在J2EE平台上开发的基于EJB组件技术的商务预订系统,其主要流程是用户登录以后,将被依次带领着通过顾客选择页和导航选择页,并将为顾客选择一个可获得的客舱(从TraveAgentBean处获得可供选择的客舱列表,TravelAgentBean的listAvailableCabin()方法由生成此网页的Servlet调用,客舱列表将用于装载到用户浏览器的网页上创建HTML列表框),当用户选择一间客舱并提交了选择时,一个HTTP请求将会发送到EJB服务器(WebsphereApplicationServer),服务器接到此请求后,将其分派给ReservationServlet,此Servlet调用TravelAgent.BookPassage()方法做实际的预订,BookPassage()方法返回的标签信息将用于创建另一个送回用户浏览器的网页。如果预订成功,则由ProcessPaymentServlet去调用ProcessPaymentBean中的支付方法,从而实现对客户的收费过程。其具体构架见图2。

预定系统中的EJB组件主要包括以下几个部分:

CabinBean:实体Bean,主键是CabinPK,是用来封装现实世界中的航船客舱的一个实体Bean。

CustomerBean:实体Bean,主键是CustomerPK,是用来封装现实世界中需要预订航船客舱的消费者的一个实体Bean。

CruiseBean:实体Bean,主键是CruisePK,是用来封装现实世界中航船航线的一个实体Bean。ReservationBean:实体Bean,主键是CruiseID,CabinID,它代表了数据库中不变的一条记录,即一个预订,它记录了预订系统的历史事件,主要是用来防止双重预订,即两个客户预订相同航线的相同客舱,产生这种问题的原因是因为客户选择客舱和航线的时刻与调用bookPassage()方法的时刻之间有一段间隔时间。TravelAgentBean:有状态会话Bean,一个负责预订航行舱位工作流的会话Bean,它封装了完成一条航线的一个预订操作的过程并在全世界的旅行代理的客户端应用程序中使用。TravelAgentBean不仅满足消费者预订票据的需要,还可提供在航行中剩余客舱的消息。为了完成此任务,Bean需要知道预订是由哪一条航线、客舱,以及客户组成,收集到这些信息后,由bookPassage()方法来完成处理预订过程,它为客户账户的计费负责,在正确航线的正确船只上预订选择的客舱,并通过Ticket类来为客户产生一张票据。在这里,我们需使用CreditCard类存储有关客户信用卡的相关信息,同时,ListAvailableCabins()方法用来显示可用的尚未被预订的客舱。

ProcessPaymentBean:无状态会话Bean,它是在事务系统中向消费者收费的过程。它定义了支票、现金和信用卡支付方式的三个事务方法,即ByCheck()、ByCash()和ByCredit()。

商务预订系统的程序代码示例

整个商务预订系统的开发是在IBMVisualAgeforJava下面

开发完成的,在该IDE开发环境中,实体Bean相对会话Bean要容易开发得多,以下就以TravelAgentBean为例,介绍EJB组件的开发过程:

基于EJB的商务预订系统(3)

时间:2011-04-23

1.TravelAgent远程接口

它提供了设置客户希望预订的航线和客舱ID的方法。此外,还设置boolPassage()方法来对客户的预订进行计费,并为客户产生一张票据。具体代码如下:

package com.titan.travelagent; import java.rmi.RemoteException; import javax.ejb.FinderException; import com.titan.cruise.Cruise; import com.titan.customer.Customer; import com.titan.processpayment.CreditCard; public interface TravelAgent extends javax.ejb.EJBObject { public void setCruiseID(int cruise) throws RemoteException, FinderException; public int getCruiseID( ) throws RemoteException, IncompleteConversationalState; public void setCabinID(int cabin) throws RemoteException, FinderException; public int g

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号