Service Configuration

Axis1.x では、サービスの定義にWDDD(Web Service Deployment Descriptor)ファイルが利用されていましたが、Axis2では、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>
    <excludeOperations>
        <operation>method1</operation>
        <operation>method2</operation>
    </excludeOperations>
</service>
タグ/属性 説明 デフォルト値
name サービスの名前
scope サービスのスコープ(Application, SOAPSession, TransportSession, Requestが指定可) Request
targetNamespace スキーマ定義をする際に対象となる名前空間WSDLのtargetNamespace) http://ws.apache.org/axis2
description サービスの説明
transports Webサービスの通信方式 HTTP
schema スキーマ名前空間
messageReceivers デフォルトのMessageReceiver RawXMLINOutMessageReceiver
RawXMLINOnlyMessageReceiver
parameter ServiceClass:サービスクラス
operation サービスとして公開するメソッドの定義
excludeOperations サービスクラスのメソッドの内、公開しないメソッドの定義


上の定義を S2Axis2 でも指定できるきるようにしよう。
S2Axis と同じように ServiceDef クラスを用意しようと考えているけど、中身は別物になるね。