网上书店系统开发说明文档_第1页
网上书店系统开发说明文档_第2页
网上书店系统开发说明文档_第3页
网上书店系统开发说明文档_第4页
网上书店系统开发说明文档_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

网上书店系统开发说明文档姓名:陆旭学号:1122110061开发环境搭建过程1.1软件下载开发环境所使用的软件名称及其版本信息如下表所示:软件名称版本信息JDK1.6.0_02Tomcat5.5MyEclipse5.5.1Axis2bin_1.5.4war_1.5.4Axis2_Codegen_Wizard_1.3.0Axis2_Service_Archiver_1.3.01.2搭建步骤(1).安装JDK,Tomcat服务器和MyEclipse开发环境;.启动MyEclipse,配置JDK和Tomcat相关参数;.将Axis2_Codegen_Wizard_1.3.0和Axis2_Service_Archiver_1.3.0放至Myeclipse安装目录下的plugins子目录(D:\ProgramFiles'MyEclipse5.5.1GA\eclipse\plugins);.将axis2.war包拷贝到Tomcat安装目录下的webapps子目录;.启动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:\ProgramFiles\MyEclipse5.5.1GA\eclipse\links目录下新建文件并命名为axis-eclipse-plugin.link,文件中的内容为path=D:\ProgramFiles\MyEclipse5.5.1GA\eclipse\plugins;.在使用Codegen插件来从WSDL文件生成代码时,到了最后一步出现“Anerroroccurredwhilecompletingprocess-java.lang.reflect.InvocationTargetException”错误。解决方法:从axis2的lib库中复制“geronimo-stax-api_1.0_spec-1.0.1.jar”和“backport-util-concurrent-3.1.jar"(这个文件我没有找至U,直接从网上下载的)文件到Codegen的lib目录中,同时修改plugin.xml文件,添加<libraryname="lib/geronimo-stax-api_1.0_spec-1.0.1.jar"><exportname="*"/></library><libraryname="lib/backport-util-concurrent-3.1.jar"><exportname="*"/></library>到plugin.xml文件中,保存后重新启动MyEclipse即可。.在使用Codegen插件来从WSDL文件生成代码后,代码出现错误。解决方法:在工程中添加axis2的lib文件。服务端实现及服务部署2.1服务实现.创建Web工程:启动MyEclipse,File->New->Project->WebProject,Projectname取名为OnlineBookstore;

.导入axis2库:右键工程名OnlineBookstore->BuildPath->AddExternalArchives…,导入axis2的所有jar包;

.生成WSDL文件:右键工程名OnlineBookstore->New->Other・・・->WSDL,按照向导填写WSDL文件内容。文件名称为OnlineBookstore.wsdl,其中包含一个操作QueryBook,输入为QueryBookRequest,输出为QueryBookResponse,QueryBookRequest含有三个string类型的参数,名称分别为bookName、authorName和ISBN,QueryBookResponse也含有三个string类型的参数,名称分别为bookName、authorName和ISBN;亠—UrJ.ineBookstoreBOnlineBookstoreSOAF亠—UrJ.ineBookstoreBOnlineBookstoreSOAFhttp:.i-1.i-1www.ex:iiTipie.org./[Inl1neEookstore笨QueryBook》]input『QueryBookRequ己三t回QueryEocikO-1output『QueryBookResponse回QueryEookFLesponse[sl[slQueryBookFLesponseE(QueryE«:«ukFLesputleeing⑥buukN:eing⑥:王llthorN:dine 吕tringetring回ISBNetring(4).由WSDL生成服务端代码:右键工程名OnlineBookstore->New->Other->Axis2Wizards->Axis2CodeGenerator,根据向导一步步填写相关信息,完成后需要修改服务包的名称以及testcase文件的两个错误(利用MyEclipse提供的自动提示功能);

(5).编写服务端代码:修改OnlineBookstoreSkeleton.java文件和OnlineBookstoreTest.java文件,增加BookInfo.java文件(用于记录查询结果)。由于系统并未采用数据库支持,因此假设只提供四本书的检索四大名著)。//只提供四丈名著的检索publicorg.example.www.onlinebookstore.QueryBookResponseQueryBook(org.example.www.onlinebookstore.QueryBookrequest){/./TOD0:fillthisTijitht-henecessaryJuusin已曰曰logictry{QueryBookP.eaponseresponse=newQueryBookP.esponsei;);Stringbookl'-Latrie=request-.get-BookI'J;airiei::i;5t.ringaut.horl'-Lame=reciuest-.get.Aut.horN;atne();St.ringISBN=requeat.ge11SBNi;);inttiook=0;if(tiookl'-Laine!=if(toookl'-Lain已■已quaIs("三国演〉:;〔rr:i:ibook=1;elseif(bo□ 已.已qua1si;"圭[楼梦"))book=2;elseif(too□kWarn匕.equais(rr®游记rr))book=3;elseif(too□MI;汕i已■已qua1s("水;许传rr))book=4;elseifi:book!=0■£■£aut-horN;aine!="":iifi:booifi:book==l&£!authorNiaine.equa1s(pp罗贯中p,:i:ibook=0;elseif(toook==2book=0;elseif(}nook==3book=u;elseif(}nook==4book=0;!aut-horN;a2Yie.equal3(rr曹雪芹rr:i:i!authorName.equaIs("吴承恩"))!authorNiaine.equals("施耐庵":i:ielseifi:toook==0££aut.hoizI'Jam已!=””)if(aut-ho已*已quaIs("罗贯中rr))OnlineBookstoreSkeleton.java代码片段publicBookinfotestQueryBook(StringbookName,StringauthorName,StringISBN)throwsjava・lang・Excgption{S匸ringurl=rrhttp://localhos匸:8080/axis2/services/OnlineBookstorerr;org.example.uwu.onlinebookstore.On1ineBookstoreStubstub=neworg.example.www.onlinebookstore.On1ineBookstoreStub(ur1);//thedefaultimplementationshouldpointorg.e:■::amp1e.www.onlinebookst-ore.On1ineBookstoreSt-uln.QueryBookrequest-=(org・example・uww・onlinebookstoirg・OnJ.ineBookstor已Stub・QueryBook)getTe;//'TODO:FillinthesayHello2hereit已quest..setBookl'Jimnei:bookN;mm已:i;r已quest..set.Aut.horNimri已i:aut.horNiain已);request,setISBNi:ISDN);System,cut.println(st-Wn.QueryBook(request-).get-BookI''J;airiei::i:i;Systern.cut.printlni:st-uln・QueryBook(request-)■叨已tAut-horLLairiei::i);Syst.ern.cut.print.ln(3t-Wzi.QueryE:ook(reciuest).get-ISBN门:i;assertNotNtil2(st.uln.QueryBook(requ已st.):i;BookInfolnooklnfo=newBookInfo(st-Wn.QueryBook(request-).get-BookI''J;airie()fs11.±>.Quei:yBook(i:equest-).getAuthorN:atne(),stuki・QueryBook(request).get-ISBNi::i);returnbooklnfo;OnlineBookstoreTest.java代码片段

packageinvoke.org.example.www.onlinekiookstore;publicclassBookinfo{StringkiookTJame;StringauthorName;StringISBN;publicvoidsetBookTJame(StringkiookTJame)this.bookNaitie=bookName;publicStringgetBooltWame()returnbooRName;publicvoidsetAuthorName(StringauthorName)this.authorName=authorName;publicStringgetAuthorName()returnauthorName;publicvoidsetISBN(StringISBN)this.ISBN=ISEN;publicStringgetISBN()returnISBN;publicBookinfo(StringbookName,StringauthorNaine,StringISBN)this.bookName=bookName;this.authorName=authorName;;…BookInfo.java代码片段2.2服务部署(1).将服务实现打包:右键工程名OnlineBookstore->New->Other->Axis2Wizards->Axis2ServiceArchiver,根据向导一步步填写相关信息,最终生成OnlineBookstore.aar文件;(2).服务部署:将打包好的OnlineBookstore.aar文件,拷贝至D:\ProgramFiles\ApacheSoftwareFoundation\TomcatFiles\ApacheSoftwareFoundation\Tomcat5.5\webapps\axis2\WEB-INF\services目录下;D:''i.Progr:diTiFiles''i.ApacheSoftwareFrnindatiotl'Turnu:mt5.5\web:±ppe\:axie2丫iVEE;一工KF\eervicez55ervicez.liztUST丈件1KBF和文件夹任务创連一于新文件夹

versiun-l.5.4.:±:±i_AAR丈件13KB

UrilineBuukstore.a:±i_AAR文件42KB(3).服务发布启动Tomcat服务器,在浏览器中输入地址http://localhost:8080/axis2,点击其中的“service”链接,看到OnlineBookstore的Web服务发布成功。BackHome|BackHome|RefreshApacheSoftwareFoundation/AvailableservicesVersionServiceEPRhttp7/localhost:8080/axis2/services/VersionServiceRESTeprhttp://localhost:8080/axis2/rest/VersionServiceDescription:VersionServiceStatus:ActiveAvailableOperationsgetVersionOnlineBookstoreServiceEPR.http://localhost:8080/axis2/seMces/OnlineBookstoreServiceRESTeprhttpi//localhost:8080/axis2/rest/OnlineBookstoreServiceDescription:OnlineBookstoreServiceStatus:ActiveAvailableOperationsQueryBook客户端实现客户端采用简单的一个JSP页面呈现,主要分为两部分,其中一部分是用户查询界面,采用表单实现,包括书名、作者名和ISBN号输入框以及查询、取消按钮;另外一部分为查询结果界面,为了简单起见,只给出该书是否存在的信息以及书名、作者名和ISBN号等信息。查询结果:不存在您所需要的书书名:作者名:ISBN#:JSP页面主要代码主要包括四部分内容:.第一部分:根据用户输入调用服务,如果没有得到用户输入或所查询书籍不存在,返回信息为空,否则返回书籍的相应信息。<卷St.ringbooJd'-Lairie=r已cp.iest..g已匚Par;ainet.er(ppbookl'J^nerp)==nuU_?rppp:request..get.Par;ain已t.er(rpbookTImrij已pr);Stringaut.ho匸Warn已=reqliest..get.Param已ter("aut.ho匸Warn已")==nnl1 ? "":request..get.Param已匸已匸("aut.ho匸时am已":i;St.ringISBN=匸已quest..g已匸Param已t-Eiz("ISBNrp)==nuU_?pppp:r已匚[u已st..g已匸Param已ter("ISBNpp);bookNam已=newSt.ring(bookNam已.get.Byt.es("iso-8859-1").r"ut-f-8");aut.ho已=newString(aut.hoizI’Jam已■g已匸Ey匸已s(ppiso-88.59-lpp)frput.f-8pr);ISBN=newSt.ring(ISBN,g已匸盼匸已耳i:”:1宫口一已日5!3-l”:i』ffur.f-8pp);BookInfobookInfo=newBookInfo(l:iookl'J;ainefaut.horN;3i[iefISBN);if(l:iookI'J;airie!=null||aut.horN;airi已!=nuU_||ISBN!=nuU_)On1ineB□okstoreTest.test.=newOn1ineBookstoreTEst.i::i;bookInf□=t•已st.t.已日t.QueryB□ok(bookl'-Laine’aut.horN;aine’ISBN:i;.第二部分:表单提交验证代码,需要用户至少输入书名、作者名或ISBN号三者其中之一,然后才允许用户查询操作。<script1anguage=rrJavaScript,Ftype=rrtext/JavaScriptrr>functionquery()varbookNaine=document.getEleinentEyld(rrbookNaine,F).value;varaut-horNaine=document..get-EleinentByld(rraut.horNaine").value;varISEN=document.getElementById(rrISEN,r).value;if(bookName==””££authorName==””££ISBN==””){ alert(-if至少填写书各作者名或ISBN^其中之一!”);docuinent.getElementById(,FbookNamerr).focus();returnfalse;docuinent.getElementByld(rrkiookStoreFormrr).sukunit();functioncancel()docuinent.getEleniEntByld(,rkiookTJamErr).value=,rrr;docuinent.getEleinentByld(,FauthorName”).value="”;docuinent.get.Element.ById(rrISBNrr).value=rrrr;</script>.第三部分:用户查询表单界面,包括三个输入框,分别记录用户对书名、作者名以及ISBN号的输入信息。一个查询按钮和一个取消按钮,分别用于提交查询信息以及取消当前输入信息。<kiody><forir)id=,rbookStoreForinr,action=,Findex.jmp"method=,rpost">Vtablealign=rrcenterr,width=,,30%,r><tr><tdT.Tidtli=rr22%rralign=rrrightrr:</td><tdalign=,,left,,Xinputname=,rbookNamer,value=,,<^=bookName^>r,maxlength=rr20rrstyle=,,width:90%,r/></td></tr><tr><tdwidth=,,22^,raJ.ign=”r作者名:</td><tdalign=,,left,r><inputname=,rauthorName,rva1ue=w<%=authorName maxlength=r,20r,style=,,width:90^,r/></td></tr><tr><t-dT.Tii:lr.li=^22%rralign=rrEiglit-rr>ISBI'-I^-:</'td><tdalign=,rleft"><inputname=,,ISBN,rvalue=,r<^=ISBN*>"maxlength="20"style=rrwidth:90^,r/x/t.d></tr><tr><t-dT.Tirlr.li=^22%rralign=rrE td><tdalign="left,r><BUTTONonclick=,,query()">查询-:./BUTTON>  fintosp;&ntosp;<BUTT0Nonclick=,,cancel()">取消v/BUTTO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论