<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
    主站蜘蛛池模板: 亚洲一区二区三区高清不卡 | 丁香花在线观看免费观看图片 | xxxx日本在线播放免费不卡| 免费看片A级毛片免费看| 在线播放免费人成毛片乱码| 久久国产精品成人片免费| 黄页网站在线观看免费高清| 国产美女无遮挡免费视频网站| 亚洲美女高清一区二区三区| 成年18网站免费视频网站| 亚洲免费闲人蜜桃| 三年片在线观看免费大全电影| 十八禁视频在线观看免费无码无遮挡骂过 | 亚洲日韩在线中文字幕综合 | 亚洲午夜久久久影院伊人| 亚洲美女激情视频| 亚洲AV无码精品国产成人| 国产99久久久国产精免费| 男女猛烈激情xx00免费视频| 久久免费动漫品精老司机| 一级毛片免费不卡在线| 最近中文字幕无吗免费高清| 国产成人精品久久亚洲高清不卡 | 亚洲?V乱码久久精品蜜桃| 日韩免费视频网站| 亚洲国产日韩在线视频| 亚洲人成77777在线观看网| 自拍偷区亚洲国内自拍| 五月天婷婷精品免费视频| 日本xxxx色视频在线观看免费| 免费无码又爽又高潮视频 | 久久亚洲精品无码| 亚洲乱码中文字幕在线| 曰批全过程免费视频在线观看无码| 成人免费一区二区无码视频| 久久不见久久见中文字幕免费 | 久久久亚洲欧洲日产国码是AV| 狠狠入ady亚洲精品| 99精品在线免费观看| 四虎在线播放免费永久视频| 亚洲人成影院在线|