herodby
          技術(shù) 筆記
          posts - 14,  comments - 14,  trackbacks - 0
          ??? axis2 有三種配置文件 用來(lái)配置系統(tǒng).第一個(gè)是用來(lái)配置整個(gè)系統(tǒng)(全局配置)--axis2.xml.第二個(gè)是配置一個(gè)服務(wù)(服務(wù)配置),第三個(gè)是配置一個(gè)module .
          ??? 1:全局配置----axis2.xml
          ?????????所有axis2啟動(dòng)時(shí)需要的配置都在包括在axis2.xml文件中.在這個(gè)文件中,我們可以看到有6個(gè)頂級(jí)節(jié)點(diǎn),列表如下:
          ????????
        1. Parameter
        2. Transport Receiver
        3. Transport Sender
        4. Phase Order
        5. Module References
        6. Listeners (Observers)

          Parameter
          ????? 這個(gè)節(jié)點(diǎn)只有一個(gè)name屬性,和一個(gè)value值.每個(gè)頂級(jí)的parameter節(jié)點(diǎn)定義的值都會(huì)被寫到AxisConfiguration 對(duì)象的屬性里.因此在系統(tǒng)運(yùn)行時(shí),我們可以通過(guò)AxisConfiguration對(duì)象來(lái)獲得在axis2.xml中配置的頂級(jí)parameter節(jié)點(diǎn)的值.配置一個(gè)parameter的正確方法 如下所示:

          ??? <parameter name="name of the parameter" >parameter value </parameter>

          Transport Receiver
          ?????
          <transportReceiver name="http"??????????????????????????????????????????????????????????????????????????????????????????? class="org.apache.axis2.transport.http.SimpleHTTPServer">
          ??????? <parameter name="port" >6060</parameter>
          </transportReceiver>
          ???? transpaortReceiver元素的name屬性,代表了數(shù)據(jù)傳輸?shù)拿?可以是 "http,tcp , smtp , commonshttp stc "?? ,當(dāng)系統(tǒng)啟動(dòng)的時(shí)候,或者在客戶端設(shè)置transport的時(shí)候,就可以使用在這里命名的transport,來(lái)裝載相應(yīng)的transport.
          ??? class屬性 描述了實(shí)際的java類 ,這個(gè)類必須擴(kuò)展了transport接口.任何transport都可以有0個(gè)或者任意多個(gè)參數(shù),如果設(shè)置了參數(shù),那么這些參數(shù)可以被相應(yīng)的transpaortReceiver 獲得.

          ???? Transport Senders
          ?????????和Transport Receiver一樣,它也是注冊(cè)倒系統(tǒng)里, 在以后運(yùn)行時(shí),用來(lái)發(fā)送消息.
          ?<transportSender name="http" class="org.apache.axis2.transport.http.CommonsHTTPTransportSender">
          ??????? <parameter name="PROTOCOL" locked="xsd:false">HTTP/1.0</parameter>
          </transportSender>
          ??? 這個(gè)配置段的屬性解釋和Transport Receiver類似,就不做介紹了.

          Phase Order
          ??? 使用 phase order元素,具體描述在執(zhí)行鏈中必須被執(zhí)行的步驟順序.
          <phaseOrder type="inflow">
          ?????????<phase name="Transport">
          ??????????????????????? <handler name="RequestURIBasedDispatcher"
          ???????????????????? class="org.apache.axis2.engine.RequestURIBasedDispatcher">
          ?????????????????????????<order phase="Dispatch"/>
          ??????????????????</handler>
          ??????????????????<handler name="SOAPActionBasedDispatcher"
          ???????????????????? class="org.apache.axis2.engine.SOAPActionBasedDispatcher">
          ?????????????????????????<order phase="Dispatch"/>
          ???????????????????? </handler>
          ??????? </phase>??????
          ????? ?? .
          ???????? .
          </phaseOrder>?

          令人興奮的是,你可以在這里增加自己的handler,而且在axis2(任何axis版本)中,都沒有handler 鏈的硬編碼框架,也就是說(shuō)不需要擴(kuò)展或者繼承axis2的什么接口或者類.
          具體例子可以看axis2.xml文件.
          type 屬性 必須是下面中的一種:

        7. inflow
        8. outflow
        9. INfaultflow
        10. Outfaultflow

          在phaseOrder節(jié)點(diǎn)里第一級(jí)子節(jié)點(diǎn)只允許有phase元素.<phase name="Transport"/>
          前面已經(jīng)說(shuō)了,我們可以改變phaseorder,可以增加自己的phase 和handler,但是必須注意:在axis2的4個(gè) flows里面都有 system pre-defined 的phases, 我們不可以改變他們的順序,你可以在他們的后面增加自己的phase

          Module References
          如果你想使用一個(gè)模塊系統(tǒng),那么你可以在axis2.xml中增加一個(gè)頂級(jí)的module節(jié)點(diǎn).
          <module ref="addressing"/>

          Listeners (Observers)
          ?axis2中,AxisConfiguration這個(gè)類是采用的觀察者模式設(shè)計(jì)的,所以你可以向類中注冊(cè)自己的觀察者類.當(dāng)AxisConfiguration類發(fā)生改變的時(shí)候,你的類會(huì)被自動(dòng)調(diào)用 目前當(dāng)以下事件發(fā)生時(shí),觀察類就會(huì)被觸發(fā):
          ?

        11. Deploying a Service
        12. Removing a service
        13. Activate/Inactivate Service
        14. Module deploy
        15. Module remove

          注冊(cè)觀察者是非常有用的,比如,rss更新的時(shí)候,你可以通知訂閱者等等.例如:
          ? <listener class="org.apache.axis2.ObserverIMPL">
          ????? <parameter name="RSS_URL" >http://127.0.0.1/rss</parameter>
          ? </listener>
          ? class屬性指定的類,必須擴(kuò)展AxisObserver 這個(gè)接口,而且存在于classph中.
          系統(tǒng)配置就這么多了.
          太累了,休息一會(huì),以后再寫剩下的2中配置文件..

        16. 2 服務(wù)配置 service.xml
          ??? <service name="name of the service" scope="name of the scope" targetNamespace="target namespase for the service">
          ??? <description> The description of the service? </description>?

          ??? <transports>
          ?????? <transport>HTTP</transport>
          ??? </transports>
          ???
          ??? <schema schemaNamespace="schema namespace"/>
          ????
          ??? <messageReceivers>
          ??????????? <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out"
          ???????????????????????????? class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/>
          ??? </messageReceivers>
          ????
          ???? <parameter name="ServiceClass"???? locked="xsd:false">org.apache.axis2.sample.echo.EchoImpl</parameter>
          ???
          ??? <operation name="echoString" mep="operation MEP">
          ??????? <actionMapping>Mapping to action</actionMapping>
          ??????? <module ref=" a module name "/>
          ??????? <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/>
          ??? </operation>
          ? </service>
          如果.aar里面只有一個(gè)service那么.aar包的名字就是發(fā)布的webservice名字,如果有多個(gè)service,那么在這里service元素索指定的那么屬性值就表示webservice的名字.
          scope屬性指明了webservice發(fā)布后的作用范圍,有"Application","SOAPSession","TransportSession","Request";
          targetNamingSpace? :服務(wù)的名字空間,在生成wsdl時(shí)會(huì)用到.
          transport:?? 可選的,字面的意思已經(jīng)很明顯了,不多說(shuō)了,配置的name就是在axis2.xml文件中指明的transport
          parameter屬性,一個(gè)service.xml可以有任意多個(gè)頂級(jí)節(jié)點(diǎn)的parameter節(jié)點(diǎn).
          parameter里配置的值會(huì)被寫到AxisService類的屬性里,在service.xml文件中至少要有一個(gè)parameter 名字是ServiceClass 它的value值指定具體執(zhí)行服務(wù)的java類,這個(gè)類會(huì)被MessageReciever裝載.
          operation比較簡(jiǎn)單就是用來(lái)指明暴露的方法的.不做介紹了.
          剩下module的配置,還沒搞懂,先不寫了.

          posted on 2006-08-23 18:04 鄧兵野 閱讀(5520) 評(píng)論(0)  編輯  收藏 所屬分類: webservice

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           

          <2006年8月>
          303112345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          •  

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 英超| 湖南省| 吴桥县| 青州市| 喀喇| 呈贡县| 五常市| 开江县| 周宁县| 咸丰县| 永靖县| 新营市| 苗栗县| 塘沽区| 赣榆县| 台州市| 蓬溪县| 犍为县| 东乡县| 江陵县| 宜春市| 朝阳县| 东乡| 华坪县| 始兴县| 佳木斯市| 天台县| 洛川县| 沙洋县| 巴彦县| 罗江县| 金秀| 冷水江市| 牙克石市| 营山县| 达日县| 昔阳县| 永新县| 新密市| 韶关市| 常宁市|