版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
網(wǎng)上書(shū)店系統(tǒng)開(kāi)發(fā)說(shuō)明文檔姓名:陸旭學(xué)號(hào):1122110061開(kāi)發(fā)環(huán)境搭建過(guò)程1.1軟件下載開(kāi)發(fā)環(huán)境所使用的軟件名稱及其版本信息如下表所示:軟件名稱版本信息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服務(wù)器和MyEclipse開(kāi)發(fā)環(huán)境;.啟動(dòng)MyEclipse,配置JDK和Tomcat相關(guān)參數(shù);.將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子目錄;.啟動(dòng)Tomcat服務(wù)器,打開(kāi)瀏覽器,輸入并訪問(wèn)地址http://localhost:8080/axis2/,成功得到Axis2部署成功的信息。1.3所遇問(wèn)題搭建過(guò)程中以及在在服務(wù)實(shí)現(xiàn)及部署時(shí)均遇到了一些問(wèn)題。下面簡(jiǎn)要介紹所遇問(wèn)題及解決方法。(1).在1.2第(3)步,MyEclipse沒(méi)有識(shí)別Axis2的兩個(gè)插件(Axis2_Codegen_Wizard_1.3.0和Axis2_Service_Archiver_1.3.0)。解決方法:需要在D:\ProgramFiles\MyEclipse5.5.1GA\eclipse\links目錄下新建文件并命名為axis-eclipse-plugin.link,文件中的內(nèi)容為path=D:\ProgramFiles\MyEclipse5.5.1GA\eclipse\plugins;.在使用Codegen插件來(lái)從WSDL文件生成代碼時(shí),到了最后一步出現(xiàn)“Anerroroccurredwhilecompletingprocess-java.lang.reflect.InvocationTargetException”錯(cuò)誤。解決方法:從axis2的lib庫(kù)中復(fù)制“geronimo-stax-api_1.0_spec-1.0.1.jar”和“backport-util-concurrent-3.1.jar"(這個(gè)文件我沒(méi)有找至U,直接從網(wǎng)上下載的)文件到Codegen的lib目錄中,同時(shí)修改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文件中,保存后重新啟動(dòng)MyEclipse即可。.在使用Codegen插件來(lái)從WSDL文件生成代碼后,代碼出現(xiàn)錯(cuò)誤。解決方法:在工程中添加axis2的lib文件。服務(wù)端實(shí)現(xiàn)及服務(wù)部署2.1服務(wù)實(shí)現(xiàn).創(chuàng)建Web工程:啟動(dòng)MyEclipse,File->New->Project->WebProject,Projectname取名為OnlineBookstore;
.導(dǎo)入axis2庫(kù):右鍵工程名OnlineBookstore->BuildPath->AddExternalArchives…,導(dǎo)入axis2的所有jar包;
.生成WSDL文件:右鍵工程名OnlineBookstore->New->Other???->WSDL,按照向?qū)顚?xiě)WSDL文件內(nèi)容。文件名稱為OnlineBookstore.wsdl,其中包含一個(gè)操作QueryBook,輸入為QueryBookRequest,輸出為QueryBookResponse,QueryBookRequest含有三個(gè)string類(lèi)型的參數(shù),名稱分別為bookName、authorName和ISBN,QueryBookResponse也含有三個(gè)string類(lèi)型的參數(shù),名稱分別為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生成服務(wù)端代碼:右鍵工程名OnlineBookstore->New->Other->Axis2Wizards->Axis2CodeGenerator,根據(jù)向?qū)б徊讲教顚?xiě)相關(guān)信息,完成后需要修改服務(wù)包的名稱以及testcase文件的兩個(gè)錯(cuò)誤(利用MyEclipse提供的自動(dòng)提示功能);
(5).編寫(xiě)服務(wù)端代碼:修改OnlineBookstoreSkeleton.java文件和OnlineBookstoreTest.java文件,增加BookInfo.java文件(用于記錄查詢結(jié)果)。由于系統(tǒng)并未采用數(shù)據(jù)庫(kù)支持,因此假設(shè)只提供四本書(shū)的檢索四大名著)。//只提供四丈名著的檢索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("三國(guó)演〉:;〔rr:i:ibook=1;elseif(bo□ 已.已qua1si;"圭[樓夢(mèng)"))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門(mén):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服務(wù)部署(1).將服務(wù)實(shí)現(xiàn)打包:右鍵工程名OnlineBookstore->New->Other->Axis2Wizards->Axis2ServiceArchiver,根據(jù)向?qū)б徊讲教顚?xiě)相關(guān)信息,最終生成OnlineBookstore.aar文件;(2).服務(wù)部署:將打包好的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和文件夾任務(wù)創(chuàng)連一于新文件夾
versiun-l.5.4.:±:±i_AAR丈件13KB
UrilineBuukstore.a:±i_AAR文件42KB(3).服務(wù)發(fā)布啟動(dòng)Tomcat服務(wù)器,在瀏覽器中輸入地址http://localhost:8080/axis2,點(diǎn)擊其中的“service”鏈接,看到OnlineBookstore的Web服務(wù)發(fā)布成功。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客戶端實(shí)現(xiàn)客戶端采用簡(jiǎn)單的一個(gè)JSP頁(yè)面呈現(xiàn),主要分為兩部分,其中一部分是用戶查詢界面,采用表單實(shí)現(xiàn),包括書(shū)名、作者名和ISBN號(hào)輸入框以及查詢、取消按鈕;另外一部分為查詢結(jié)果界面,為了簡(jiǎn)單起見(jiàn),只給出該書(shū)是否存在的信息以及書(shū)名、作者名和ISBN號(hào)等信息。查詢結(jié)果:不存在您所需要的書(shū)書(shū)名:作者名:ISBN#:JSP頁(yè)面主要代碼主要包括四部分內(nèi)容:.第一部分:根據(jù)用戶輸入調(diào)用服務(wù),如果沒(méi)有得到用戶輸入或所查詢書(shū)籍不存在,返回信息為空,否則返回書(shū)籍的相應(yīng)信息。<卷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匸時(shí)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;.第二部分:表單提交驗(yàn)證代碼,需要用戶至少輸入書(shū)名、作者名或ISBN號(hào)三者其中之一,然后才允許用戶查詢操作。<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至少填寫(xiě)書(shū)各作者名或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>.第三部分:用戶查詢表單界面,包括三個(gè)輸入框,分別記錄用戶對(duì)書(shū)名、作者名以及ISBN號(hào)的輸入信息。一個(gè)查詢按鈕和一個(gè)取消按鈕,分別用于提交查詢信息以及取消當(dāng)前輸入信息。<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. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度美容院連鎖加盟品牌推廣合同4篇
- 基于2025年度云計(jì)算技術(shù)的業(yè)務(wù)支持服務(wù)合同2篇
- 二零二五年度糧油產(chǎn)品電商平臺(tái)內(nèi)容合作合同4篇
- 二零二五年度綜合管廊工程勞務(wù)分包合同示范文本4篇
- 二零二五年度智慧城市基礎(chǔ)設(shè)施租賃合同4篇
- 2025年度二手車(chē)交易及售后服務(wù)合同4篇
- 二零二五年度航空航天設(shè)備財(cái)產(chǎn)抵押擔(dān)保投資合同3篇
- 二零二五年度醫(yī)療器械研發(fā)與生產(chǎn)代理合同4篇
- 二零二五年度幼兒園廚房智能化設(shè)備采購(gòu)安裝合同3篇
- 二零二五年度打樁材料供應(yīng)及質(zhì)量控制協(xié)議4篇
- 人教版(2025新版)七年級(jí)下冊(cè)英語(yǔ):寒假課內(nèi)預(yù)習(xí)重點(diǎn)知識(shí)默寫(xiě)練習(xí)
- 藝術(shù)品捐贈(zèng)協(xié)議
- 【公開(kāi)課】同一直線上二力的合成+課件+2024-2025學(xué)年+人教版(2024)初中物理八年級(jí)下冊(cè)+
- 高職組全國(guó)職業(yè)院校技能大賽(嬰幼兒照護(hù)賽項(xiàng))備賽試題庫(kù)(含答案)
- 2024年公安部直屬事業(yè)單位招聘筆試參考題庫(kù)附帶答案詳解
- NB-T 47013.15-2021 承壓設(shè)備無(wú)損檢測(cè) 第15部分:相控陣超聲檢測(cè)
- 10KV供配電工程施工組織設(shè)計(jì)
- 終端攔截攻略
- 藥物外滲處理及預(yù)防【病房護(hù)士安全警示教育培訓(xùn)課件】--ppt課件
- 紙箱檢驗(yàn)標(biāo)準(zhǔn)新
評(píng)論
0/150
提交評(píng)論