Hitachi

Cosminexus V11 アプリケーションサーバ Webサービス開発ガイド


10.5.2 OUTパラメタを一つだけ持つ場合

次に示すJavaメソッドを持つSEIを起点に,Webサービスを開発することを想定します。このJavaメソッドは,OUTパラメタを一つだけ持ち,戻り値は持ちません。

@WebMethod
public void test1( @WebParam(mode=WebParam.Mode.OUT) Holder<String> param1 );

この場合にマッピングされるWSDLの一部を次に示します。

...
<types>
  <xsd:schema targetNamespace="http://cosminexus.com/jaxws">
 
    <xs:element name="test1" type="tns:test1"/>
 
    <xs:element name="test1Response" type="tns:test1Response"/>
 
    <xs:complexType name="test1">
      <xs:sequence/>
    </xs:complexType>
 
    <xs:complexType name="test1Response">
      <xs:sequence>
        <xs:element name="arg0" type="xs:string" minOccurs="0"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</types>
<message name="test1">
  <part name="parameters" element="tns:test1"/>
</message>
 
<message name="test1Response">
  <part name="parameters" element="tns:test1Response"/>
</message>
 
<portType ...>
  <operation name="test1">
    <input message="tns:test1"/>
    <output message="tns:test1Response"/>
  </operation>
  ...
</portType>
...

OUTパラメタは,wsdl:output要素から参照されるwrapper子要素にマッピングされます。

このWSDLを指定してcjwsimportコマンドを実行すると,生成されるサービスクラスのJavaメソッドは次のようになります。

@WebMethod
public String test1();

wsdl:output要素から参照されるwrapper子要素が1個だけなので,そのwrapper子要素は戻り値にマッピングされます。