Soap 使用Axis2从具有复杂类型的WSDL生成Java类
我有一个内置在.NET中的web服务(我相信是2.0),它的WSDL是由框架自动生成的。我正试图为它构建一个Java客户机,并使用Axis2的wsdl2java生成带有ADB数据绑定的存根类(主要是因为该客户机的主要合作伙伴一直在为用Java编写的服务做同样的事情) WSDL包含许多复杂类型,类似于以下……代码段:Soap 使用Axis2从具有复杂类型的WSDL生成Java类,soap,wsdl,code-generation,axis2,Soap,Wsdl,Code Generation,Axis2,我有一个内置在.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: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标记--
当wsdl2java生成使用此服务的代码时,这些字段被定义为PRODUCT_NAME_type0之类的类型,它们希望在SOAP响应中找到PRODUCT_NAME_type0作为标记。让它成为Java代码是一件很糟糕的事情,但是期望它出现在SOAP响应中会导致错误。wsdl2java是否有一个标志可以改变这种行为?我必须使用不同的绑定吗?不同的工具?哇,我想这对外面的人来说是个简单的问题 最后,我决定ADB可能不是为了支持我所拥有的WSDL而设计的,于是转而使用JAX-WS中的wsimport实用程序,这似乎是可行的
<PRODUCT_NAME><![CDATA[test]]></PRODUCT_NAME>