1、航空订票系统开发说明文档姓名:张敬 学号:12031217901 开发环境搭建过程1.1 软件下载开发环境所使用的软件名称及其版本信息如下表所示:软件名称 版本信息JDK jdk1.7.0_01Tomcat 6.0.35MyEclipse 10.0axis2-1.6.2-binaxis2-1.6.2-waraxis2-eclipse-codegen-plugin-1.6.2Axis2axis2-eclipse-service-plugin-1.6.21.2 搭建环境1. 安装 JDK;环境变量配置如下图 1-1:(1)JAVA_HOME:新建一个变量名 JAVA_HOME,并把变量值写成 C:
2、Program FilesJavajdk1.7.1(装 JDK 时的路径) ;(2)配置 PATH: 在系统变量里编辑一个变量名 Path,并在其末尾处添加.;%JAVA_HOME%bin(3)配置 CLASSPATH:在环境变量里新建一个变量名 CLASSPATH 并将变量写成.;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar图 1-12. 安装并配置 Tomcat 相关参数;将 tomcat 压缩文件 apache-tomcat-6.0.35.zip 中的内容解压缩到 D:apache-tomcat-6.0.35 下,然后安装配置 jdk 环境变量
3、的方法配增加系统变量。变量名:TOMCAT_HOME;变量值:D:apache-tomcat-6.0.35 。然后修改系统变量 CLASSPATH 添加 %TOMCAT_HOME%commonlibservlet-api.jar;同时修改系统变量 Path,添加%TOMCAT_HOME%bin3. 安装 MyEclipse,并在其中配置 JDK 和 Tomcat 相关参数;4. 将 axis2-eclipse-codegen-plugin-1.6.2 和 axis2-eclipse-service-plugin-1.6.2 放至Myeclipse 安装目录下的 dropins 子目录(D:wo
4、rksoftmyeclipsedropins) ,启动MyEclipse,自动安装;将 axis2.war 包拷贝到 Tomcat 安装目录下的 webapps 子目录;启动 Tomcat 服务器,打开浏览器,输入并访问地址http:/localhost:8080/axis2/,成功得到 Axis2 部署成功的信息。如下图 1-2 所示。图 1-21.3 所遇问题搭建过程中以及在在服务实现及部署时均遇到了一些问题。下面简要介绍所遇问题及解决方法。1. 在使用 Codegen 插件来从 WSDL 文件生成代码后,代码出现错误。解决方法:在工程中添加 axis2 的 lib 文件。2. Jsp 页
5、面向 servlet 传值过程中可能出现乱码问题,可以配置一个过滤器。即代码中的 Filter 类2 服务端服务实现部署2.1 服务实现1. 创建 Web 工程:启动 MyEclipse,File-New-Project-Web Project,Project name 取名为shop;2. 导入 axis2 库:右键工程名 shop-Build Path-Add External Archives,导入 axis2 的所有jar 包;3. 编写服务器端代码:右键工程名 shop-New-class 如下图所示:根据三个参数,返回飞机航班信息。代码如下图所示:2.2 服务部署1. 生成 WSD
6、L 文件:右键工程名 shopNew-Other-Axis2 Wizards-Axis2 Code Generator,根据向导一步步填写相关信息(利用 MyEclipse 提供的自动提示功能) ; 选择由 java 代码生成 WSDL 文件选择 java 代码编译过的 class 文件生成 WSDL 文件的相关信息保持默认即可输出路径和命名:在工程名上点击 F5 刷新即可看到刚生成的 list.wsdl2. 发布服务:右键工程名 shop-New-Other-Axis2 Wizards-Axis2 Service Archiver 根据向导一步步填写相关信息(利用 MyEclipse 提供的
7、自动提示功能) 。中间过程截图以略去。最后生成 list_service.aar 文件,将文件放在 D:worksoftapache-tomcat-6.0.35webappsaxis2WEB-INFservices 打开浏览器http:/localhost:8080/axis2/services/listServices 就可以看到服务已经发布成功页面3 客户端实现3.1 生成客户端代码右键工程名 shopNew-Other-Axis2 Wizards-Axis2 Code Generator,根据向导一步步填写相关信息(利用 MyEclipse 提供的自动提示功能) ; 选择由WSDL 文件
8、生成客户端代码生成客户端代码的相关位置最后生成后,按 F5 刷新即可,如有错误,可能缺失 jar 包,引入即可。3.2 客户端代码调用本系统采用 MVC 模式,C(控制层)采用 Servlet 负责转向和业务调用。生成的客户端调用放在 Servlet(QueryCl.java)中,代码如下图所示:V(视图层)采用简单的一个 JSP 页面呈现,主要分为两部分,其中一部分是用户查询界面,采用表单实现,包括出发时间、出发地点和目的地输入框以及提交按钮;另外一部分为订购航班结果界面。查询页面:为简单起见,只提供北京,上海,西安,广州,四个城市之间航班预定,而且时间限制在 2012-10-1。如果时间不
9、是 2012-10-1 将会转到error.jsp 并给出提示错误信息 ;如果查询城市超出上述四个城市,则转向listnull.jsp 提示不提供预定服务。订票页面:查询结果将在 result.jsp 中显示,并提供订票服务。订票成功将转向 order.jsp,并显示总票价。4 运行结果截图页面如下图所示:查询页面查询结果订票成功页面5 总结通过这次作业主要了解了 MVC 框架和 webservice 的部署。关于 MVC:M 是指数据模型,V 是指用户界面,C 则是控制器。使用 MVC 的目的是将 M 和 V 的实现代码分离,从而使同一个程序可以使用不同的表现形式。比如一批统计数据你可以分别
10、用柱状图、饼图来表示。C 存在的目的则是确保 M 和 V 的同步,一旦 M 改变,V 应该同步更新。 本系统采用了 Servlet 为控制器,jsp 界面负责显示的 mvc。关于 webservice:WebService 是一个应用组件, 它逻辑性的为其他应用程序提供数据与服务。实现了服务和具体实现相分离。Web 服务部署主要分为两类:1. 最简单的一种方式是 Java Web Service,即 JWS。Axis 允许把普通 Java 类的源文件的扩展名改为.jws,然后把它简单的 copy 到AXIS_HOME 下。这样,Axis 会自动编译.jws 文件,并把它加入到 Java Web Servie。2.使用 wsdd(Web Service Deployment Descriptor,Web 服务发布描述符)文件来发布Web Service。通过 wsdl 描述服务,将服务打成 arr 包的形式,将他放到 AXIS_HOME 下的 service文件下。