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

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

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

    lqxue

    常用鏈接

    統計

    book

    tools

    最新評論

    [收藏]Axis中WSDL描述文件的詳細介紹Axis中WSDL描述文件的詳細介紹

    Axis 中使用WSDL文件的詳細介紹  

         <deployment>:告訴Axis Engine這是一個部署描述文件。一個部署描述文件可以表示一個完整的engine配置或者將要部署到一個活動active的一部分組件。

         <GlobalConfiguration>:用于控制engine范圍的配置。可以包含以下子元素:

    ·            <parameter> : 用來設置Axis的各種屬性,參考Global Axis Configuration,可以配置任意數量的參數元素.

    ·            <role> : 設置一個SOAP actor/role URIengine可以對它進行識別。這允許指向這個roleSOAP headers成功的被engine處理。任意數量.

    ·            <requestFlow> : 全局的請求Handlers。在調用實際的服務之前調用.

    ·            <responseFlow> : 全局響應Handlers,在調用完實際的服務后,還沒有返回到客戶端之前調用

             <requestFlow [name="name"] [type="type"] >可以放置任意多個<handler> or <chain><requestFlow>中,但是可能只有一個<requestFlow>. 

             <responseFlow [name="name"] [type="type"] >可以放置任意多個<handler> or <chain>< responseFlow >中,但是可能只有一個< responseFlow >. 

             <undeployment>部署文檔的根元素,用于指示Axis這是個卸載描述文件.

         <handler [name="name"] type="type">位于頂層元素<deployment> or <undeployment>, or inside a <chain>, <requestFlow>, or <responseFlow>. 用于定義Handler,并定義handler的類型。"Type" 可以是已經定義的Handler或者是"java:class.name"形式的QName。可選的"name"屬性允許將這個Handler的定義在其他部署描述部分中引用。可以包含任意數量的<parameter name="name" value="value">元素

         <service name="name" provider="provider" >部署/卸載一個Axis服務。這是最復雜的一個WSDD標簽。Options可能通過以下元素來指定: <parameter name="name" value="value"/>, 一些常用的包括:·   className : 后臺實現的類 allowedMethods : 每個provider可以決定那些方法允許web services訪問

     Axis支持的providers有如下幾種:

       Java RPC Provider (provider="java:RPC") 默認情況下所有的public方法都可以web service方式提供Java MsgProvder (provider="java:MSG") 為了更進一步的限制上面的方法,allowedMethods選項用于指定一個以空格分隔的方法名,只有這些方法可以通過web service訪問。也可以將這個值指定為”*”表示所有的方法都可以訪問。同時operation元素用來更進一步的定義被提供的方法,但是它不能決定方法的可見性. 注意,發布任何web service都有安全含義.

    ·        allowedRoles : 都好分離的允許訪問服務的角色列表。注意,這些是安全角色,和SOAP角色相反。安全角色控制訪問,SOAP角色控制哪些SOAPheaders會被處理。

    ·        extraClasses : 指定一個空格或者都好分離的類名稱列表,這些類的名字應該被包含在WSDL文檔的類型定義部分。當服務接口引用一個基類的時候,或者希望WSDL文件包含其他類的XML Schema類型定義的時候,這個參數很有用。

        如果希望為服務定義handler,可以在<service>元素中添加<requestFlow><responseFlow>子元素。他們的語義和<chain>元素中的定義時一樣的。也就是說,它們可以包含<handler> and <chain> 元素,根據指定的順序被調用.

    通過服務的Handlers來控制角色,可以在服務聲明中指定任意數量的<role>元素。

    例如:

    <service name="test">

         <parameter name="className" value="test.Implementation"/>

         <parameter name="allowedMethods" value="*"/>

         <namespace>http://testservice/</namespace>

         <role>http://testservice/MyRole</role>

         <requestFlow> <!-- Run these before processing the request -->

               <handler type="java:MyHandlerClass"/>"

               <handler type="somethingIDefinedPreviously"/>

         </requestFlow>

    </service>

        可以通過使用<operation>標簽指定關于服務的特殊操作的元數據。這可以將方法的java參數名和特定的XML名進行映射,為參數指定特定的模式,并將特定的XML名字映射到特定的操作。例如

    <operation name="method"> </operation>  

    <chain name="name"><subelement/>...</chain>

         定義一個鏈。當chain被調用的時候,按順序調用其中的handler。這樣就可以構建一個常用功能的模塊,chain元素的子元素可以是handler或者chainhandler的定義形式可以是如下兩種方式:

    <chain name="myChain">
        <handler type="java:org.apache.axis.handlers.LogHandler"/>

    </chain>

    或者

    <handler name="logger" type="java:org.apache.axis.handlers.LogHandler"/>
        <chain name="myChain"/>
             <handler type="logger"/>

        </chain> 

    <transport name="name">

         定義了一個服務器端的傳輸。當一個輸入請求到達的時候,服務器傳輸被調用。服務器傳輸可能定義<requestFlow> and/or <responseFlow> 元素來指定handlers/chains,在請求和響應被處理的時候被調用,這個功能和service元素中的功能一樣。典型的傳輸請求響應handler實現了關于傳輸的功能。例如轉換協議headers等等

         對于任何種類的傳輸,經常是指HTTP傳輸,當特定的查詢字符串傳遞到servlet的時候用戶可能允許Axis servlets執行任意的動作,以plug-in的方式。 (參考Axis Servlet Query String Plug-ins).當查詢字符串handler的類名被指導后,用戶可以通過在<transport>中添加合適的<parameter>來啟用它(插件)

    <transport name="http">
         <parameter name="useDefaultQueryStrings" value="false" />
         <parameter name="qs.name" value="class.name" />

    </transport>

         在上面的例子中,AxisServlet會處理的查詢字符串是?name,它調用的類是class.name

       <parameter>元素的name屬性必須加上前綴qs來表示這個元素定義了一個查詢字符串handlervalue屬性值相實現了org.apache.axis.transport.http.QSHandler 接口的類。默認情況下,Axis提供了三個Axis servlet查詢字符串handlers (?list, ?method, and ?wsdl). 查看Axis服務器配置文件來了解它們的定義。如果不希望使用默認的handlers,就設置"useDefaultQueryStrings" false。默認會被設置成true.

           <transport name="name" pivot="handler type" >

         定義了一個客戶端的傳輸,當發送SOAP消息的時候來調用。"pivot"屬性指定一個Handler來作為實際的傳輸sender,例如HTTPSender。請求和響應流和服務器端的設置相同. <typeMapping qname="ns:localName" classname="classname" serializer="classname" deserializer="classname"/> 每個typeMapping將一個XML qualified名字和一個Java類進行映射,使用一個序列器和反序列器。 

    <beanMapping qname="ns:localName" classname="classname">講話的類型映射,使用一個預定義的序列器/反序列器來編碼/解碼JavaBeans 

          <documentation><service>, <operation> 或者操作的<parameter>中使用。.是文檔說明,生成wsdl<wsdl:document>元素.

    Example:
    <operation name="echoString" >
          <documentation>This operation echoes a string</documentation>  

         <parameter name="param">
                 <documentation>a string</documentation>
          </parameter>
    </operation>

    全局的Axis配置參數

    服務默認的是通過server-config.wsdd文件中的值來進行配置的。但是熟練的Axis用戶可以寫自己的配置handler,這樣就可以將配置數據保存在LDAP服務器,數據庫或者遠程的web service等等。查看源代碼來了解如何實現。也可以在web.xml文件中使自動的獲取配置信息。但是Axis不推薦這樣使用,因為最好將配置信息放在一個位置。

    server-config文件中,有一個全局配置部分,支持以名/值對的形式作為嵌套元素使用。

    <globalConfiguration>

        <parameter name="adminPassword" value="admin"/>

        <parameter name="axis.servicesPath" value="/services/"/>

        <parameter name="attachments.Directory" value="c:"temp"attachments"/>

        <parameter name="sendMultiRefs" value="true"/>

        <parameter name="sendXsiTypes" value="true"/>

        <parameter name="attachments.implementation" value="org.apache.axis.attachments.AttachmentsImpl"/>

        <parameter name="sendXMLDeclaration" value="true"/>

        <parameter name="enable2DArrayEncoding" value="true"/>

        <parameter name="dotNetSoapEncFix" value="false"/>

    </globalConfiguration>

    單獨的Service(服務)配置

    <service name="MyServiceName"

                       provider="java:RPC"

                       style="rpc|document|wrapped"

                       use="encoded|literal"

                       streaming="off|on"

                       attachment="MIME|DIME|NONE">

      <parameter name="className" value="org.apache.mystuff.MyService"/>

     <parameter name="allowedMethods" value="method1 method2 method3"/>

     <parameter name="wsdlTargetNamespace" value="http://mystuff.apache.org/MyService"/>

     <parameter name="wsdlServiceElement" value="MyService"/>

     <parameter name="wsdlServicePort" value="MyServicePort"/>

     <parameter name="wsdlPortType" value="MyPort"/>

     <parameter name="wsdlSoapActionMode" value="NONE|DEFAULT|OPERATION"/>

      <parameter name="SingleSOAPVersion" value="1.1|1.2/>

      <documentation>Service level info</documentation>

     <endpointURL>http://example.com:5050/my/custom/url/to/service</endpointURL>

     <wsdlFile>/path/to/wsdl/file</wsdlFile>

     <namespace>http://my.namespace.com/myservice</namespace>

     <handlerInfoChain>handlerChainName</handlerInfoChain>

     <operation ... />

     <typeMapping ... />

     <beanMapping ... />

    </service>

    單獨的Operation(操作)配置

    <operation name="GetQuote"

               qname="operNS:GetQuote"

               returnQName="GetQuoteResult"

               returnType="xsd:float"

               soapAction=""

               returnHeader="true|false">

        <documentation>Operation level documentation here</documentation>

        <parameter name="ticker" type="tns:string"/>

        <fault name="InvalidTickerFaultMessage"

               qname="tickerSymbol"

               class="test.wsdl.faults.InvalidTickerFaultMessage"

               type="xsd:string"/>

    </operation>

        由于Service的配置和Operation的配置很容易理解,各個參數也都使用了self-explanation的表示,所以這里就不再贅述了。

    同時Axis還定義日志配置以及一些預定義的Handler,詳細內容,參考Axis的參考文檔。

    From:http://gocom.primeton.com/blog9288_29578.htm

    posted on 2008-05-27 17:18 lqx 閱讀(1043) 評論(0)  編輯  收藏


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: a级毛片免费在线观看| 国产特黄一级一片免费| xvideos亚洲永久网址| 亚洲AV一区二区三区四区| 日韩免费三级电影| A国产一区二区免费入口| 亚洲综合免费视频| 可以免费观看一级毛片黄a| 免费视频一区二区| 亚洲AV无码男人的天堂| 久久精品国产亚洲AV嫖农村妇女| 99视频在线精品免费观看6| 夜夜爽妓女8888视频免费观看| 亚洲小说图片视频| 亚洲av日韩av欧v在线天堂| 最近2019年免费中文字幕高清 | 免费高清在线影片一区| 国产亚洲欧洲Aⅴ综合一区| 67pao强力打造国产免费| 免费一级全黄少妇性色生活片| 久久亚洲私人国产精品| 亚洲精品成人片在线观看| 99无码人妻一区二区三区免费| 精品国产污污免费网站入口| 四虎必出精品亚洲高清| 亚洲国产精品无码专区| 免费一看一级毛片人| 国产又黄又爽又猛免费app| 国产在线精品免费aaa片| 羞羞视频免费观看| 在线亚洲午夜片AV大片| 亚洲成色999久久网站| 免费av一区二区三区| 免费人成视频在线观看免费| 亚洲国产91在线| 亚洲一级二级三级不卡| 亚洲精品无码久久久影院相关影片 | 中文毛片无遮挡高清免费| 亚洲国产AV无码一区二区三区| 亚洲综合久久成人69| 亚洲AV无码成人精品区蜜桃 |