<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Terry.Li-彬

    虛其心,可解天下之問;專其心,可治天下之學(xué);靜其心,可悟天下之理;恒其心,可成天下之業(yè)。

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      143 隨筆 :: 344 文章 :: 130 評論 :: 0 Trackbacks

    (原) Axis2 RPC AXIOM 兩種方式

    ?

    因為項目需要在瀏覽器上調(diào)用 webservice ,在瀏覽器上返回自定義的 xml 格式結(jié)果,不需要返回 soap 封裝后的結(jié)果,故使用如下方式實現(xiàn)

    項目結(jié)構(gòu)

    ?

    src

    --com.lucky.ws

    ----AdminService.java

    --META-INF

    ----services.xml

    ?

    package com.lucky.ws;

    ?

    import org.apache.axiom.om.OMAbstractFactory;

    import org.apache.axiom.om.OMElement;

    import org.apache.axiom.om.OMFactory;

    import org.apache.axiom.om.OMNamespace;

    ?

    public class AdminService {

    ??? /*

    ??? ?* RPC 方式

    ??? ?* public String validate(String format, String component){

    ?????? System.out.println("afdasfasfdad");

    ??????

    ?????? return "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"

    ?????? +"admin>"

    ?????? +"status>"

    ?????? +"name>Server</name>"

    ?????? +"value>[ok|fail]</value>"

    ?????? +"/status>";

    ??? }*/

    ???

    ??? /*

    ??? ?* 使用 AXIOM 方式

    ??? ?*/

    ??? public OMElement validate(OMElement e){

    ?????? OMFactory fac = OMAbstractFactory.getOMFactory();

    ?????? OMNamespace omNs =

    ??????????? fac.createOMNamespace( "" , "tns" );

    ???????

    ??????? OMElement admin = fac.createOMElement( "admin" , omNs);

    ?

    ??????? OMElement status = fac.createOMElement( "status" , omNs);

    ??????? admin.addChild(status);

    ?

    ??????? OMElement name = fac.createOMElement( "name" , omNs);

    ??????? name.addChild(fac.createOMText(name, "Service" ));

    ??????? status.addChild(name);

    ??????

    ??????? OMElement value = fac.createOMElement( "value" , omNs);

    ??????? value.addChild(fac.createOMText(value, "[ok|fail]" ));

    ??????? status.addChild(value);

    ???????

    ??????? OMElement status2 = fac.createOMElement( "status" , omNs);

    ??????? admin.addChild(status2);

    ?

    ??????? OMElement name2 = fac.createOMElement( "name" , omNs);

    ??????? name2.addChild(fac.createOMText(name2, "Error" ));

    ??????? status2.addChild(name2);

    ??????

    ??????? OMElement value2 = fac.createOMElement( "value" , omNs);

    ??????? value2.addChild(fac.createOMText(value2, "msg" ));

    ??????? status2.addChild(value2);

    ?????? ? return admin;

    ??? }

    }

    ?

    ?

    <!--

    ??? 使用 RPC 方式,這種方式如果在瀏覽器上直接使用 url 調(diào)用的話,返回結(jié)果是 soap 封裝格式,這種方式在 WS 的方法參數(shù)和返回值上可以用戶自定義(原始數(shù)據(jù)類型)

    <service name="admin" scope="application">???

    ??? <messageReceivers>???

    ??????? <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver"/>???

    ??????? <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>???

    ??? </messageReceivers>???

    ??? <parameter name="ServiceClass">com.lucky.ws.AdminService</parameter>???

    </service>

    -->

    ?

    <!-- 使用 AXIOM 方式,這種方式可以用戶自己在代碼中定義對象結(jié)構(gòu),在瀏覽器上可以返回用戶自定義的 xml 格式,但是對應(yīng)的 WS 方法的參數(shù)和返回值必須為 final OMElement 類型 -->

    <service name= "admin" scope= "application" >

    ??? <operation name= "validate" >

    ??????? <messageReceiver class= "org.apache.axis2.receivers.RawXMLINOutMessageReceiver" />

    ??? </operation>

    ??? <parameter name= "ServiceClass" > com.lucky.ws.AdminService </parameter>

    </service>

    ?

    ?

    部署:

    啟動 tomcat

    Eclipse 中在項目 src 目錄上右鍵,導(dǎo)出為 aar 包,將該包放入 tomcat_home\webapps\axis2\WEB-INF\services 下, tomcat 會自動部署,

    ?

    ?

    訪問:

    在瀏覽器上訪問:

    http://localhost:8080/axis2/services /admin/validate?format=xml&component=aa

    ?

    說明:

    http://localhost:8080/axis2/services ?? 所有 webservice 都一樣

    /admin ?????????????????????????????????????????????????????????? services.xml 中定義的 webservice

    /validate????????????????????????????????????????????????????????? services.xml 中定義暴漏的 WS 方法

    ?format=xml&component=aa??????????????????????????? 參數(shù)隨便( AXIOM 會將他封裝到 OMElement Child 中,調(diào)用需要遍歷

    ?

    posted on 2010-01-06 16:23 禮物 閱讀(2640) 評論(0)  編輯  收藏 所屬分類: Axis
    主站蜘蛛池模板: 免费人成无码大片在线观看| 亚洲日韩av无码中文| 久久亚洲国产精品五月天| 久久水蜜桃亚洲av无码精品麻豆 | 狼群影院在线观看免费观看直播| 狠狠久久永久免费观看| 亚洲av无码潮喷在线观看| 国产成人亚洲毛片| 国产精彩免费视频| 亚洲AV无码不卡无码| 青柠影视在线观看免费| 免费又黄又爽又猛的毛片 | 国产精品久久久亚洲| 亚洲中文字幕无码中文| 免费成人高清在线视频| 亚洲JIZZJIZZ中国少妇中文| 亚洲一区二区三区无码国产 | 99在线在线视频免费视频观看| 免费一级特黄特色大片在线 | 国产精品亚洲五月天高清| 亚洲VA综合VA国产产VA中| 波多野结衣免费一区视频| 亚洲天堂久久精品| 好久久免费视频高清| 亚洲成av人片在线看片| 日本一区二区免费看| 国产亚洲成av片在线观看| 一个人看的在线免费视频| 亚洲精品国产精品乱码不卡| 韩国亚洲伊人久久综合影院| 免费看无码自慰一区二区| 日韩在线一区二区三区免费视频 | 国产精品永久免费| 免费一级毛片在线观看| 中文字幕a∨在线乱码免费看 | 亚洲熟妇无码一区二区三区导航| 国产zzjjzzjj视频全免费 | 亚洲第一AAAAA片| 成人无码区免费视频观看 | 亚洲人成人无码网www电影首页| 免费的黄网站男人的天堂|