我部署了“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"
?
答案 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文件夹中。