- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于webservice的火车票查询系统的研究与设计
基于webservice的火车票查询系统的研究与设计
摘要:火车票查询系统在当今这个网络信息社会,被点击率还是很高的,为了使火车票查询系统能够稳定的运行,现提出用webservice方法去实现这个系统的设计模式。
关键词:webservice;Xfire1.2;火车票查询系统
0. 前言
在信息化、知识化如此发达的现代社会里,Internet和计算机信息技术的飞速发展与广泛普及,给我们需要查询信息的人提供了很大的帮助,列车是人们出远门经常使用的交通工具,列车的时刻表查询在网络上也已经相当普及了,但是有时候查询量过大,会使某些不稳定的列车时刻查询系统崩溃,面临这样的问题,我们需要对列车时刻查询系统做一次改造,使得列车时刻查询系统能够更好的维护以及更加稳定的运行。
系统总体设计(参与人:曹梅)
系统框架设计(参与人:曹梅)
本系统是通过webservice方式去实现列车时刻查询系统,通过webservice方式能够更好的去分工协作,具有高内聚,低耦合的特点。因为webservice的实现方式有很多,这里我们选择比较方便开发,而且适合小型系统开发的Xfire1.2,因为eclipse是我们的开发工具,而eclipse自带的Xfire1.2插件使得开发起来很方便。
系统物理模型设计(参与人:曹梅)
因为目前只涉及到列车时刻的查询,所以物理模型设计的比较简单,只有一张列车时刻信息表,表中的字段实现了查询后需要展现的所有信息,目前的展现信息有:列车车次,列车始发站、终点站、途径站,始发时间,终点时间,列车类型、全长公里数。其中要作为查询信息字段的是列车车次或者列车始发站和列车终点站。途经站这个字段的长度需要大一些,因为这里存储的是始发站到终点站中间所途径的所有站点名称。具体的物理模型图如下:
系统业务逻辑模型设计(参与人:曹梅)
列车查询系统需要完成的就是通过列车车次或者始发站和终点站的查询信息去查询相应的列车信息,所以前台界面只需要展现通过列车车次查询或者始发站和终点站查询的查询界面,以及查询后列出相应查询信息的列表页面。界面(客户端)输入的查询条件,通过Xfire调用服务端提供的列车查询接口,获取查询返回信息,并且进行展现;服务端就是监听获取客户端传来的信息,调用的已经发布的方法去实现到后台数据库进行查询并且返回结果给客户端。本人写了一个简单的测试代码,服务端的方法执行的是获取两个参数,为long型的数字,对这两个数字进行相加,并且返回相加后的结果。把服务端代码发布后,通过发布的路径,可以看到对应的wsdl文件,客户端需要引入相应的类,然后按照wsdl文件规范调用服务端的接口,并且在客户端打印返回值。这个测试代码已经可以正常和正确的运行。
代码设计----服务端(参与人:李卿)
确定业务代码(参与人:李卿)
系统的主要业务是完成列车时刻表的查询,通过获取客户端输入的参数值,去到数据库查询,并且返回列表信息。通过jdbc连接oracle数据库,将返回的结果组成一个商议好的类型,最初定为arraylist型的返回值,但是通过之后的测试,发现Xfire1.2不支持list的返回值,之后改变了返回值类型,改为string数组,通过获取查询数据库返回值,将每一个返回值字符串用逗号隔开后拼成数组的一个值,如果查询返回有3列,那么就有3个大小的string数组,将这个string数组返回给客户端。
设计业务代码(参与人:李卿)
项目中最重要的地方是要引入Xfire1.2相应的jar包,在services.xml文件中指定好需要发布的java类,然后把项目加载到tomcat服务器上,这里发布的url为http://localhost:6060/Wservice/services/trainService ,启动Tomcat后进入这个url后面加?wsdl 会访问到wsdl显示内容时,即代表发布成功。
技术难点(参与人:李卿)
首先是查询数据库方面,这里用的是最基础的jdbc连接数据库的方式,通过加载oracle驱动,连接对应的数据库,操作相应的数据库语句,获取返回结果。
其次是将数据库语句的编写,因为前台传来的值如果是车次的话就不会有始发站和终点站的信息了,那么系统的查询sql语句就需要按照车次去查询,反之亦然。而始发站和终点站有可能只输入了始发站,或只输入了终点站,或者两个都输入,那么查询的sql就需要有所改动,所以本人加了一层判断。如果车次号不为空,那么就查询针对车次号的查询语句,如果车次号为空那么就查询针对始发站和终点站的sql,需要注意的是这里的where条件一定要写where 字段 like ‘%输入的站点%’,这样即时没有输入站点那么就会执行 where 字段 like ‘%%’,这样的语句是不影响的。
再次就是对返回值的拼装,因为之前
文档评论(0)