Axis2服务和原始参数(C#客户端问题)

时间:2013-05-26 13:42:22

标签: java web-services wsdl axis2 java2wsdl

我部署了“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"的结果。那么,我怎么能告诉Axis2从生成的WSDL中删除这个minOccurs="0"

1 个答案:

答案 0 :(得分:0)

您可以生成WSDL文件,然后对其进行自定义。

要生成WSDL文件,您可以使用此处指定的Axis2的Java2WSDL:http://axis.apache.org/axis2/java/core/docs/quickstartguide.html#ready(此处完整参考: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文件夹中。

相关问题