测品娱乐
您的当前位置:首页网上书店系统开发说明文档

网上书店系统开发说明文档

来源:测品娱乐
网上书店系统开发说明文档

姓名:陆旭 学号:1122110061

1 开发环境搭建过程

1.1 软件下载

开发环境所使用的软件名称及其版本信息如下表所示:

软件名称 JDK Tomcat MyEclipse 版本信息 1.6.0_02 5.5 5.5.1 bin_1.5.4 Axis2 war_1.5.4 Axis2_Codegen_Wizard_1.3.0 Axis2_Service_Archiver_1.3.0 1.2 搭建步骤

(1). 安装JDK,Tomcat服务器和MyEclipse开发环境; (2). 启动MyEclipse,配置JDK和Tomcat相关参数;

(3). 将Axis2_Codegen_Wizard_1.3.0和Axis2_Service_Archiver_1.3.0放至

Myeclipse安装目录下的plugins子目录(D:\\Program Files\\MyEclipse 5.5.1 GA\\eclipse\\plugins);

(4). 将axis2.war包拷贝到Tomcat安装目录下的webapps子目录; (5). 启动Tomcat服务器,打开浏览器,输入并访问地址

http://localhost:8080/axis2/,成功得到Axis2部署成功的信息。

1.3 所遇问题

搭建过程中以及在在服务实现及部署时均遇到了一些问题。下面简要介绍所遇问题及解决方法。

(1). 在1.2第(3)步,MyEclipse没有识别Axis2的两个插件

(Axis2_Codegen_Wizard_1.3.0和Axis2_Service_Archiver_1.3.0)。解决方法:需要在D:\\Program Files\\MyEclipse 5.5.1 GA\\eclipse\\links目录下新建文件并命名为axis-eclipse-plugin.link,文件中的内容为path=D:\\Program Files\\MyEclipse 5.5.1 GA\\eclipse\\plugins;

(2). 在使用Codegen插件来从WSDL文件生成代码时,到了最后一步出现

An

error

occurred

while

completing

process

-java.lang.reflect.InvocationTargetException”错误。解决方法:从axis2的

lib

库中复制“geronimo-stax-api_1.0_spec-1.0.1.jar”和

“backport-util-concurrent-3.1.jar”(这个文件我没有找到,直接从网上下载的)文件到Codegen的lib目录中,同时修改plugin.xml文件,添加

到plugin.xml文件中,保存后重新启动MyEclipse即可。

(3). 在使用Codegen插件来从WSDL文件生成代码后,代码出现错误。解

决方法:在工程中添加axis2的lib文件。

2 服务端实现及服务部署

2.1 服务实现

(1). 创建Web工程:启动MyEclipse,File->New->Project->Web Project,Project

name取名为OnlineBookstore;

(2). 导入axis2库:右键工程名OnlineBookstore->Build Path->Add External

Archives…,导入axis2的所有jar包;

(3). 生成WSDL文件:右键工程名OnlineBookstore->New->Other…->WSDL,

按照向导填写WSDL文件内容。文件名称为OnlineBookstore.wsdl,其中包含一个操作QueryBook,输入为QueryBookRequest,输出为QueryBookResponse,QueryBookRequest含有三个string类型的参数,名称分别为bookName、authorName和ISBN,QueryBookResponse也含有三个string类型的参数,名称分别为bookName、authorName和ISBN;

(4). 由

WSDL

生成服务端代码:右键工程名

OnlineBookstore->New->Other->Axis2 Wizards->Axis2 Code Generator,根据向导一步步填写相关信息,完成后需要修改服务包的名称以及test case文件的两个错误(利用MyEclipse提供的自动提示功能);

(5). 编写服务端代码:修改OnlineBookstoreSkeleton.java文件和

OnlineBookstoreTest.java文件,增加BookInfo.java文件(用于记录查询结果)。由于系统并未采用数据库支持,因此假设只提供四本书的检索(四大名著)。

OnlineBookstoreSkeleton.java代码片段

OnlineBookstoreTest.java代码片段

BookInfo.java代码片段

2.2 服务部署

(1). 将服务实现打包:右键工程名OnlineBookstore->New->Other->Axis2

Wizards->Axis2 Service Archiver,根据向导一步步填写相关信息,最终生成OnlineBookstore.aar文件;

(2). 服务部署:将打包好的OnlineBookstore.aar文件,拷贝至D:\\Program

Files\\Apache

Software

Foundation\\Tomcat

5.5\\webapps\\axis2\\WEB-INF\\services目录下;

(3). 服务发布:启动Tomcat服务器,在浏览器中输入地址

http://localhost:8080/axis2,点击其中的“service”链接,看到OnlineBookstore的Web服务发布成功。

3 客户端实现

客户端采用简单的一个JSP页面呈现,主要分为两部分,其中一部分是用户查询界面,采用表单实现,包括书名、作者名和ISBN号输入框以及查询、取消按钮;另外一部分为查询结果界面,为了简单起见,只给出该书是否存在的信息以及书名、作者名和ISBN号等信息。

JSP页面主要代码主要包括四部分内容:

(1). 第一部分:根据用户输入调用服务,如果没有得到用户输入或所查询书

籍不存在,返回信息为空,否则返回书籍的相应信息。

(2). 第二部分:表单提交验证代码,需要用户至少输入书名、作者名或ISBN

号三者其中之一,然后才允许用户查询操作。

(3). 第三部分:用户查询表单界面,包括三个输入框,分别记录用户对书名、

作者名以及ISBN号的输入信息。一个查询按钮和一个取消按钮,分别用于提交查询信息以及取消当前输入信息。

(4). 第四部分:返回信息界面,包括显示是否查询成功,以及书名、作者名

和ISBN号的信息。

4 运行结果

(1). 服务端只提供四大名著书籍的检索,如下表所示,对于其它输入,均提

示不存在信息。

书名 三国演义 红楼梦 作者名 罗贯中 曹雪芹 ISBN号 001 002 西游记 水浒传 吴承恩 施耐庵 003 004 (2). 要求用户至少输入书名、作者名或ISBN号其中之一,服务端根据输入

情况匹配书籍的相关信息。如果用户未输入任何信息便点击“查询”按钮,则提示用户填写信息。

(3). 任意输入一个书名,如“形式语义学”,点击“查询”按钮,显示“不

存在您所需要的书”,结果如下图所示。作者名或ISBN号同理,也可以同时输入两个或三个信息。

(4). 如果用户输入的是(1)中表的信息,则显示“存在您所需要的书”,结果

如下图所示,同时返回相关书籍信息。

因篇幅问题不能全部显示,请点此查看更多更全内容