David.Turing's blog

           

          用JSR181驅(qū)動(dòng)SpringSide Web Services

          和小白一起探討,覺(jué)得如果XFire用JSR181去驅(qū)動(dòng),一定會(huì)非常簡(jiǎn)潔。
          從JSR175發(fā)展過(guò)來(lái)的JSR181,早期實(shí)現(xiàn)于Weblogic Workshop 7.1,我們
          對(duì)@WebService, @WebMethod這些標(biāo)記的最初理解是將Java類(lèi)通過(guò)Annotation
          直接編譯成Weblogic的JWS,BEA作為JSR181標(biāo)準(zhǔn)的Leader,很大膽地將
          JSR181用于Weblogic 9.1,去驅(qū)動(dòng)Weblogic下一代的WebService框架。

          SpringSide團(tuán)隊(duì)開(kāi)始選用XFire作為SS 1.0的時(shí)候,已經(jīng)充分考慮Xfire在JSR181
          支持上的優(yōu)勢(shì)(對(duì)比于Axis)。

          作為Spring Web Services的一個(gè)最佳實(shí)踐,我們已經(jīng)開(kāi)始考慮基于JSR181驅(qū)動(dòng)的
          Web Service框架,我們一致認(rèn)為JSR181能夠?yàn)榧軜?gòu)解耦提供非常切實(shí)有效的
          途徑。

          在下一個(gè)SS2.0版本中,我們考慮提供以下的DEMO:
          1,基于Security的JSR181 DEMO
          2,基于Conversation的JSR181 DEMO
          3,基于Transaction的JSR181 DEMO
          4,基于Context的JSR181 DEMO

          另外,在框架考慮上,會(huì)使用JSR標(biāo)記Handlers的方式(配置文件也是可以,但放在
          Annotation,帶來(lái)的是更好的易讀性)

          ???? package ?examples.webservices.handlers;

          ????@WebService?()
          ????@SOAPMessageHandlers?(?{
          ??????@SOAPMessageHandler?(
          ???????className
          = " examples.webservices.soap_handlers.simple.ServerHandler1 " ),
          ??????@SOAPMessageHandler?(
          ???????className
          = " examples.webservices.soap_handlers.simple.ServerHandler2 " )
          ????}?)

          ????
          public ? class ?HandlersImpl?{
          ????????????
          // Your?Code
          ????}


          另外,在SS2.0的下一個(gè)版本中,提供SOAPBinding,可以設(shè)置其Style為Document或者RPC,Encode和Literal也是能夠定制的(跟Workshop一樣方便),也是一件簡(jiǎn)單的事情:
          @WebService
          @SOAPBinding(style
          =SOAPBinding.Style.DOCUMENT,
          use
          =SOAPBinding.Use.LITERAL,
          parameterStyle
          =SOAPBinding.ParameterStyle.BARE)
          public?class?EchoService?{
          @WebMethod(action
          ="echo")
          @WebResult(targetNamespace
          =“http://www.springside.org.cn”,?name="echoResult")
          public?String?echo(
          @WebParam(targetNamespace
          =“http://www.springside.org.cn”,?name="echoMsg")?String?msg){
          return?msg;
          }

          }

          同時(shí),考慮很多人喜歡搞作SOAP Header,利用它來(lái)做一些業(yè)務(wù)標(biāo)記處理,我們會(huì)支持下面的方式
          @WebMethod
          public?String?echo(
          @WebParam(name
          ="myHeader",
          header
          =true,
          mode
          =WebParam.Mode.INOUT)?StringHolder?header,
          String?msg){
          String?ret?
          =?header.value?+?",?"?+?msg;
          header.value?
          =?"got?it";
          return?ret;
          }
          來(lái)自:
          [http://www.aygfsteel.com/security/archive/2006/10/31/Spring_JSR181_XFire_WebService.html]

          posted on 2006-10-31 09:47 david.turing 閱讀(4305) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): SOA/WebService

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(110)

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

          隨筆分類(lèi)(126)

          隨筆檔案(155)

          文章分類(lèi)(9)

          文章檔案(19)

          相冊(cè)

          搜索

          積分與排名

          最新隨筆

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 小金县| 平乡县| 岳阳县| 乐山市| 西平县| 梁河县| 高淳县| 余庆县| 新野县| 南川市| 临澧县| 黔南| 林口县| 黄骅市| 宣武区| 沿河| 普兰县| 孝感市| 衡阳市| 来凤县| 福州市| 两当县| 中方县| 天镇县| 琼结县| 长乐市| 乡城县| 昌邑市| 景宁| 常宁市| 红原县| 石河子市| 靖安县| 海原县| 涿州市| 柳林县| 蚌埠市| 辉南县| 新民市| 安阳县| 高密市|