使用Axis2从复杂类型的WSDL生成Java类

时间:2011-10-14 14:23:21

标签: 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: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的标志会改变这种行为?我必须使用不同的绑定吗?不同的工具?

1 个答案:

答案 0 :(得分:0)

哇,我觉得这对那里的人来说是一个简单的问题......

我最终决定ADB可能不支持我拥有的WSDL,并转而使用JAX-WS中的wsimport实用程序,它似乎正在工作。