0

「hello world」サービスをデプロイしました (Tomcat + Axis2):

public class ServerLogic {
    public int add(int x, int y) {
        return x + y;
    }
}

しかし、Axis2 は次のような WSDL を生成しました。

<xs:element name="add">
    <xs:complexType>
        <xs:sequence>
            <xs:element minOccurs="0" name="x" type="xs:int"/>
            <xs:element minOccurs="0" name="y" type="xs:int"/>
        </xs:sequence>
    </xs:complexType>
</xs:element>
<xs:element name="addResponse">
    <xs:complexType>
        <xs:sequence>
            <xs:element minOccurs="0" name="return" type="xs:int"/>
        </xs:sequence>
    </xs:complexType>
</xs:element>

この WSDL で C# クライアントを生成すると、次のシグネチャを持つメソッドが得られました。

 void add(int x, [System.Xml.Serialization.XmlIgnoreAttribute()] bool xSpecified,
          int y, [System.Xml.Serialization.XmlIgnoreAttribute()] bool ySpecified,
out int @return, [System.Xml.Serialization.XmlIgnoreAttribute()] out bool returnSpecified);

私が理解しているように、*Specified- パラメータ - の結果ですminOccurs="0"minOccurs="0"では、生成された WSDL からこれを削除するように Axis2 に伝えるにはどうすればよいでしょうか?

4

1 に答える 1

0

WSDL ファイルを生成してカスタマイズできます。

WSDL ファイルを生成するには、http://axis.apache.org/axis2/java/core/docs/quickstartguide.html#ready で指定されているように Axis2 の Java2WSDL を使用できます(完全なリファレンスはこちら: http ://axis.apache. org/axis2/java/core/docs/reference.html )

クイックスタートの例のように、Apache Ant を使用して wsdl ファイルを生成することもできます: http://axis.apache.org/axis2/java/core/docs/quickstartguide.html#deploy

カスタマイズされた WSDL ファイルは、META-INF フォルダーに配置する必要があります。

于 2013-05-28T10:48:32.720 に答える