版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Restful Webservice 構(gòu)建1) 簡(jiǎn)述主要使用restlet框架來實(shí)現(xiàn)rest風(fēng)格的web服務(wù)構(gòu)建。為什么選用restlet呢?主要從以 下角度考慮:1. 完全的rest實(shí)現(xiàn),完全拋棄 Servlet API2. 輕量級(jí)框架,可作為j2se程序獨(dú)立運(yùn)行,又可運(yùn)行在現(xiàn)有的web容器中雖然struts2.0 spring3.0 jrs很多都可以實(shí)現(xiàn) restful的應(yīng)用,但是restlet可完美集成 在spring等框架中3. 服務(wù)端/客戶端 支持*其他特性請(qǐng)參照restlet的官網(wǎng)翻譯片段2) 具體實(shí)現(xiàn)1. 采用restlet框架來支持rest,封裝dbcp數(shù)據(jù)庫連接池來提供數(shù)據(jù)庫
2、訪問。2. 對(duì)某一類性的資源采用同一application來管理,此類型的資源可能有若干個(gè)資源類來支持。下面以Rss新聞的服務(wù)來詳細(xì)介紹下相關(guān)的實(shí)現(xiàn)以及配置1. 首先建立的一個(gè) web工程,這里采用了Tomcat服務(wù)器作為單機(jī)調(diào)試用t y UniteRe5ttuServioe3 JAX-WS Web Services立 Deployment Descriptor: UniteRetfulService# :R&as src出 firitStepsServletJ 田 unrteJ 汨 cEent曲 client丄| ClientTest.java> 廂 service.rssNe
3、wsJ CO mmon:> ,£ DbcpBean jdva建 da+g base.pcrpertiesi> Libraries球 JavaScript(i3 build扌占 W&bCrtnl二 & META-INF鼻 WEB-INF卜 & libre st let xml土 web .xmlWeb-inf/web.xml 來注冊(cè) restlet 的監(jiān)聽<!adapter->oervlet>-<s*rirlet-nair.e>Re3tletServleu</servlet-nan.e> s&rirl
4、er-clasa-arfj. ceatlst ext - rvlet - Server Servlet</3ervleD-cla33></srvlL><!- Catch all reques七日一-> <servLet'irftppinqf><B&rirleE-nair.&>Rest;let;Servle匸<,皀己工叮1己匸一nmrr.E <url-pattern>/口ul-pa匸匸urnA<3ervlet-mapping>2. Web-inf/restlet.xml 來定義 ap
5、plication 級(jí)別的 restful url 映射¥工l=*x。叫cMl£wg = UTF-f"?>耳匚平二乜時(shí)匸舁毛?i FD if tz S? t rW41 «S/Ccinpcfi C *xirLr.3 :i3L*h±tpr/r釘才-m爭(zhēng)-口rj/2DC 1/XML-Scn-=LM-ins±ac:Er-xj l: act era Lica _ le ft- *?itTpr/FV3r,± ff / S rA cm X: /£ . CJ/COrqn-Mar: t "*><defai
6、cdcHc?3i:>s,p tgr'i:r;la* *rissrvJ白書.FfrsPStflpspp i«CicnH,/ ><atzicii百二丄F逗耳勺工匚=/5915加存 g pe匸品g口旳呂s迄d專匚i 1n /><=L1 - iCL 匚二丄Ed C C: ZJL- /RssJFSk i Pla C±£ t已二匚=G匚丄4 日二円二丄亡壬.二1-££;:.弓丄:£,蘭££匸?百弓丘弓卑號(hào)匕丿耳二匸二丄匚匸i I:-Dd燈 > </ de f-a.LL2.tH5
7、01></ccanpcnm&l以圖中所示工程為例,當(dāng)請(qǐng)求http:/主機(jī)ip/UniteRestfulService/RssNewsPlaces的時(shí)候 ,restlet 將會(huì)自 動(dòng)將此請(qǐng)求交 由 unite.client.service.rssNews.RssNewsApplicatio n類來進(jìn)行處理3. 在application這一級(jí)別的類中(比如RssNewsApplication)類,可以對(duì)資源進(jìn)行進(jìn)一步的映射配置publi a class RsaNewsApplication extends Application puijli synchronieed Resc
8、lec crealLelnbaLindRoot (R&later romter = new Router (gee匚entmx匸( roster. actach (MTrf RasMewsPlacesResoLiree . class): roucer attach (M/place>Tr, RssNewsResource classy ;rattarn router;|)通過如上進(jìn)一步的配置,http:/主機(jī)ip/UniteRestfulService/RssNewsPlaces這個(gè)請(qǐng)求將會(huì) 映射到 RssNewsPlacesResource 類; 而 http:/ 主機(jī) ip
9、/UniteRestfulService/RssNewsPlaces/place這個(gè)請(qǐng)求將會(huì)映射到RssNewsResource類。(上面的這一步驟體現(xiàn)了restlet對(duì)url-資源這一 rest概念的基本闡釋)4. mon.DbcpBean類利用dbcp對(duì)數(shù)據(jù)庫訪問進(jìn)行了單例模式圭寸裝。能夠保證一定的數(shù)據(jù)庫操作性能。perties利用資源文件對(duì)數(shù)據(jù)庫以及連接池做參數(shù)配置。dbUrl-jdtoc1:/locfilose : 1433; DalaB-a3cNair.e D3User us*rNajr*=JNE JpassHQrd=JNFJL23£driverCl
10、asscom.microsoTt sqlserver.j dbc SQLServerDriver initalSize»5rraxAccivelOOrLaxIzll&=30n-.axWait=2 0C3|定義數(shù)據(jù)庫地址,用戶名密碼,jdbc驅(qū)動(dòng)類型,數(shù)據(jù)庫連接池初始鏈接數(shù),最大連數(shù),最大閑置連接數(shù),最大等待響應(yīng)時(shí)間毫秒數(shù)等。RssNevrsPlaces rssNewaPlces = new RasNewsPLaces );Dt:cp3ean dbcpBean = DtcpBean .i ;Connect ion conn = dbcpBean getCcnnec t;ionf
11、;ErspirtdStat&ir.trLt preriieSaterLt = null;Res口_七5己工 resulrSe匸=null;RssNewsPlace newsFlace - null;try prepares匸目匸亡mun匸 = conn preparesta七亡皿皀nt t "導(dǎo)亡丄皀u匕 aheng, uxl from RsstJr 1F); resulnSai = prepar eSEarercent _ eitecu 匸良 Qn 色工 V(): while (r&sultSetn亡兀匸()newsplace h巳則;String place =
12、result Sex. getS tring (" sheng17);St*j_rig url = reultSe- .getStirLa(rrtirln);newsPlace setFlce(place>newsPlace .3巴tdrJ. (url);rsstJswsPlaces getNevsPlaces ( add (newFlace; catch (5QLEK.cept ion. & I)finally try Ii f (pxepareStatement != rroll prepareStatemenE »close();if (resultS&
13、#174;t 匸 null resultSe亡-close(/)1f (conn ! null) corm. close (; 口2七匚11est) 上面是一段使用 DbcpBean 的程序,檢索了 RssUrl 表,將表中存在的地區(qū)名,以 及該地區(qū)所對(duì)應(yīng)的新聞鏈接地址讀取出來。5. 回到 RssNewsPlacesResource/RssNewsResource資源類在*Resource資源類中,提供對(duì)資源的GET/PUT/POST/DELET操作。Restlet提供多種方式的實(shí)現(xiàn)方式。比如注解方式,或者重寫父類方法的方式等。注解方式中,采用舸憂【吒鼻中public String test(
14、) DtcpBean dbcp弓已旦n = Dbp弓已良n.cew工nMtmuum( i : Connection conn = dbcpBen» getConnec匸ion“7 rettirn "hello, wqjId.*1;J類似 這樣的注解,來聲明某個(gè)方法的屬性等。而重寫父類方法方式也可以更加靈活。protected Repr皀s皀Titacian gee(Variant variant) throws ResourceException Representac丄an resul-r = null;部分省略if- APPLICATION XML-iiCfin.Fat
15、Lble (var丄呂ct.口亡上社亡垃口e ) ) lesiilt = new XstrearrRsp resent at ioTKRssNewsPla 匚匚 (rsN 亡 wnF 丄己 ues); else if (MediaType.getMediaType(»result = nev JacksorReFresentation<R33NevsP13ces>(rssNewsPlaee3):ire turn result;通過 XstreamReprese ntati on 或者 Jacks on Represe ntati on 等 restlet 功能拓展類, 將
16、某實(shí)體類的實(shí)例轉(zhuǎn)化為符合XML/JSON請(qǐng)求的數(shù)據(jù)類型的數(shù)據(jù)。6. 實(shí)際運(yùn)行結(jié)果URL:http:/localhost:8080/UniteRestfulService/RssNewsPlaces對(duì)應(yīng)的返回結(jié)果 xml 形式呈現(xiàn)(截圖為部分?jǐn)?shù)據(jù))6咁I(lǐng)臚 &nc0rtin9iUTF S- ?>-ctmito .cif ntsafvi .rssNfews bsan rfe'sNiawsP<aces>-cneiw5f>iacs>亠 nlTe.cbanitservice.rssbRrts.bean.Rs5Neff8PlaM>匚*二吃京才p3匸護(hù)衛(wèi)f
17、Iifl'-httpt/news.bAMu.ciim/n?cmd = 7Alo<-13Aname= blR 1WPI嶺IBE"l|.tn =imi</umts.cliQnLsiar,brHZGi-.rE£lhjQWE-bi=:an .RseN«vu-=PIj£ >-ojnite .ch0ftt.SEwus .rssNews .bMn,fc.sNew5Plac ?a 上劈 c/place>:uri: Mtp:/news, boMuxorvi / n?cmd 蕓 Fix - aaMorrie'cvwcF'DJf
18、liAJfttn-rss 打 uEx</umtexlient. serw ice. rssNews.bean .RssNeMj-sPlac: e >-<umlte .cbertL.serM'ice . rssNevi s .bean. RsNe aFiace >電訓(xùn)呂U電A去宰彳甬亡9 ?<i id l http e/firw s hnidii.enm / nTrmri = 7Altb< I ?Sfhnnm 嶺匸霊卄丘暫 UMfe r 7Atn r耳峙 irl > ppriiQe工li昕t.rssews.陽勺me叩護(hù)law b >-<
19、;mnite.cbertt .service. rssHe別!s .bean_R£&N&rt sPlace,<pld 匚巴 i±UL plljces岐1賈打皿1戸/粧口、上曲曲仏“也|/市九件血 /iMckc撞“卸w06%ligRrtiC l: Cftln rs-Vup! j-&FuntelcliflnFriry'rRir55NH'flL5tbean1Nawitf,lia£_ r一 <unite.cl 右nt .service, rssblewf .bean. RssNeiflrsPlace aupl =iu
20、171; _=rflkd芒urlh>lIp訂/«mwb .bdldiuL«n ( n?nniEl 7Morl S4S&jidrnt> 毗。越3嘶In f </uM >c/ur>t0i clisnt Erwcs1 hgeNqwe. bean .Rsshow-dlj-c a ><unita .ckiRnt .se rvice rpshtPws ,baan Re 弓Ne nrsfiace ?<p4ace >3?北 </pllace>-:ijri:hrtp;/niewss buldiu.Ccni / nfcm
21、d-/aloe-22>DlhJiame = BAD _>% liBlAtn =rss< url s </ufttjXlienti.Mritf»& rss*Jaws.bea*i 用吃刊a >URL:http:/localhost:8080/UniteRestfulService/RssNewsPlaces/ 北京對(duì)應(yīng)的返回結(jié)果xml形式呈現(xiàn)(截圖為部分?jǐn)?shù)據(jù))血rslirsdwVTF-IP-<uni&r d»?nt Mnrace.rsaNCTra bean 4riM-NEH-ix'reHiaNc irgT * 桶囂的i
22、KWftrnftil'lr幣古卻壽優(yōu)繭市一踴產(chǎn)生申勢(shì)吟啣對(duì)常耳立擊書門口盍鼻*:事無-口無童豪ifilflit云對(duì)主1111方欣為9 特立EErkMJt贈(zèng)»宣誥人=£J|聞囉軾丄“血存泊mw 7D1 |-Ot - 3H 0(HllJ-00>«-7r-*昭>k iiEEp. /測(cè).£n>/rOflhi#mi/ J411/Q k/JF I Jl>0Qih4ml -/OS mLh 出”'unrie.diBnL5Qrwiipg:.r33l4ew3eani.R5sN?w?- 4jnte d匕snne日ms科ms twahe*gm 縊英34 昭<ntftsT ita; Itfil書衛(wèi)主HiKKiftk手卓空>離-堺邑忌二 5燈巾2rla-,ip 審爭(zhēng)皐,刊口“ 里市±r|iSM>'
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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年浙江貨運(yùn)從業(yè)資格證模擬
- 2025年成都b2貨運(yùn)資格證多少道題
- 加入學(xué)生會(huì)的演講稿15篇
- 2025個(gè)人股權(quán)轉(zhuǎn)讓協(xié)議書范本及法律風(fēng)險(xiǎn)提示2篇
- 2025年度文化產(chǎn)業(yè)發(fā)展專項(xiàng)資金使用及監(jiān)管合同4篇
- 2025年度新材料研發(fā)場(chǎng)委托招聘協(xié)議3篇
- 2025年度信息技術(shù)項(xiàng)目臨時(shí)工雇傭合同范本3篇
- 二零二五年度土地租賃合同法律風(fēng)險(xiǎn)防控協(xié)議
- 2025年度UPS不間斷電源設(shè)備銷售與產(chǎn)品研發(fā)合作合同3篇
- 二零二五年度嬰幼兒奶粉品牌授權(quán)專賣店加盟合同協(xié)議書
- 2025年安慶港華燃?xì)庀薰菊衅腹ぷ魅藛T14人高頻重點(diǎn)提升(共500題)附帶答案詳解
- 人教版(2025新版)七年級(jí)下冊(cè)數(shù)學(xué)第七章 相交線與平行線 單元測(cè)試卷(含答案)
- GB/T 44351-2024退化林修復(fù)技術(shù)規(guī)程
- 完整2024年開工第一課課件
- 從跨文化交際的角度解析中西方酒文化(合集5篇)xiexiebang.com
- 中藥飲片培訓(xùn)課件
- 醫(yī)院護(hù)理培訓(xùn)課件:《早產(chǎn)兒姿勢(shì)管理與擺位》
- 《論文的寫作技巧》課件
- 空氣自動(dòng)站儀器運(yùn)營(yíng)維護(hù)項(xiàng)目操作說明以及簡(jiǎn)單故障處理
- 2022年12月Python-一級(jí)等級(jí)考試真題(附答案-解析)
- T-CHSA 020-2023 上頜骨缺損手術(shù)功能修復(fù)重建的專家共識(shí)
評(píng)論
0/150
提交評(píng)論