我有一个用.NET构建的Web服务(我相信2.0),它的WSDL由框架自动生成。我正在尝试为它构建一个Java客户端,并使用Axis2的wsdl2java来生成带有ADB数据绑定的存根类(主要是因为该客户端的主要合作伙伴对使用Java编写的服务做了同样的事情)。
WSDL包含许多看起来像这样的复杂类型......代码段:
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="ID" type="s:long" />
<s:element minOccurs="0" maxOccurs="1" name="PRODUCT_NAME">
<s:complexType mixed="true">
<s:sequence>
<s:any />
</s:sequence>
</s:complexType>
</s:element>
...
在SOAP消息中,这些字段都将具有CDATA标记 -
<PRODUCT_NAME><![CDATA[test]]></PRODUCT_NAME>
当wsdl2java生成使用此服务的代码时,这些字段被定义为类似PRODUCT_NAME_type0的类型,并且他们希望在SOAP响应中找到PRODUCT_NAME_type0作为标记。拥有Java代码是一个无赖,但期望它在SOAP响应中导致错误。是否有wsdl2java的标志会改变这种行为?我必须使用不同的绑定吗?不同的工具?
答案 0 :(得分:0)
我最终决定ADB可能不支持我拥有的WSDL,并转而使用JAX-WS中的wsimport实用程序,它似乎正在工作。