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子要素は戻り値にマッピングされます。