David.Turing's blog

           

          思考Spring攔截技術(shù)與Web Service異常處理的結(jié)合

          通常,良好的架構(gòu)都會(huì)有很好的異常處理模式,Web Service也不例外。
          例外的是,當(dāng)你的項(xiàng)目比較龐大的時(shí)候,你的業(yè)務(wù)方法可能很多并且你并不了解他們的內(nèi)部實(shí)現(xiàn)。
          作為一個(gè)優(yōu)秀的Web Service架構(gòu)師,你需要解決Web服務(wù)跟這些業(yè)務(wù)異常的結(jié)合問題。

          現(xiàn)實(shí)是我們都不想關(guān)心這些業(yè)務(wù)類的實(shí)現(xiàn),盡管這些異常從Java類拋出,并且Web服務(wù)必須處理這些
          異常,起碼,你需要讓客戶端知道:web服務(wù)端拋出異常。

          以XFire為例, 假設(shè)有一個(gè)Web服務(wù)A和一個(gè)調(diào)用A的客戶端B
          A服務(wù)端 B客戶端
          當(dāng)B->A發(fā)起一個(gè)Web服務(wù)請(qǐng)求,A拋出異常的時(shí)候,會(huì)直接new XFireFault并扔向XFire客戶端。
          解耦思路帶領(lǐng)下,應(yīng)該先將異常處理剝離出來。
          于是,有
          A服務(wù)-A異常處理handler? B客戶端-B異常處理handler
          這樣,從架構(gòu)的角度,A/B均無需考慮異常問題。

          XFire客戶端可以通過addFaultHandler來增加異常處理,XFire服務(wù)端則可以通過典型的AOP異常攔截來隔離
          業(yè)務(wù)邏輯和Web服務(wù)之間的紐帶。

          posted on 2006-08-26 00:24 david.turing 閱讀(3305) 評(píng)論(2)  編輯  收藏 所屬分類: SOA/WebService

          評(píng)論

          # re: 思考Spring攔截技術(shù)與Web Service異常處理的結(jié)合 2006-08-28 15:34 david.turing

          我最后的作法是這樣的,通過Spring(throw Adivce)來攔截ABC Excpetion,
          然后再注入到MyABCExcpetionInvocator類
          經(jīng)過一番拳腳,我在從這個(gè)類往外拋出XFireFault,當(dāng)然,這個(gè)Fault被我
          設(shè)置了Detail和全局的ErrorCode以及這個(gè)Code是從哪個(gè)類Throw出等信息。  回復(fù)  更多評(píng)論   

          # re: 思考Spring攔截技術(shù)與Web Service異常處理的結(jié)合 2007-03-09 15:24 lodzio

          http://www.granny-porno.irsuto.info @X@   回復(fù)  更多評(píng)論   

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(110)

          我參與的團(tuán)隊(duì)

          隨筆分類(126)

          隨筆檔案(155)

          文章分類(9)

          文章檔案(19)

          相冊(cè)

          搜索

          積分與排名

          最新隨筆

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 安泽县| 绿春县| 天祝| 浠水县| 崇阳县| 育儿| 柳江县| 库伦旗| 同德县| 胶州市| 堆龙德庆县| 苍溪县| 武乡县| 金溪县| 金乡县| 胶州市| 沅江市| 古丈县| 登封市| 淮南市| 交口县| 肃北| 遵义市| 犍为县| 富阳市| 奈曼旗| 临潭县| 合山市| 宁城县| 从江县| 通化市| 临湘市| 科尔| 武汉市| 黔南| 霞浦县| 桂林市| 德格县| 竹北市| 深州市| 河西区|