从 .NET 接口生成 wsdls 时,如何将 asp.net / asmx 配置为根本不使用肥皂编码?简而言之,一个.NET SOAP Web 服务正在生成一个包含soap 编码的wsdl。例如:
<s:schema targetNamespace="http://tempuri.org/AbstractTypes">
<s:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
<s:complexType name="StringArray">
<s:complexContent mixed="false">
<s:restriction base="soapenc:Array">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="String" type="s:string" />
</s:sequence>
</s:restriction>
</s:complexContent>
</s:complexType>
</s:schema>
这无法使用 CXF 中的 wsdl2java 进行解析,这是由于 soapenc:Array 位而导致的 JAX-WS 实现。解决方法是将上面的 xml 更改为:
<s:schema targetNamespace="http://tempuri.org/AbstractTypes">
<s:import namespace="http://schemas.xmlsoap.org/soap/encoding/" />
<s:complexType name="StringArray">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="String" type="s:string" />
</s:sequence>
</s:complexType>
</s:schema>