2011-10-14 89 views
0

我有一个以.NET构建的Web服务(我相信2.0),而且它的WSDL是由框架自动生成的。我试图为它构建一个Java客户端,并使用Axis2的wsdl2java来生成带有ADB数据绑定的存根类(主要是因为该客户端的主要合作伙伴一直在为使用Java编写的服务做同样的事情)。使用Axis2从具有复杂类型的WSDL生成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 tags--

<PRODUCT_NAME><![CDATA[test]]></PRODUCT_NAME> 

当wsdl2java生成使用此服务的代码,这些字段被定义为具有类似PRODUCT_NAME_type0的类型,并且他们希望在SOAP响应中查找PRODUCT_NAME_type0作为标记。拥有它的Java代码是一件令人失望的事情,但期望它在SOAP响应中导致错误。是否有一个标志wsdl2java会改变这种行为?我必须使用不同的绑定吗?不同的工具?

回答

0

哇,我认为这将一直是一个人在那里一个简单的问题...

我最终决定,亚行很可能并不是旨在支持WSDL我有,并切换到使用的wsimport工具来自JAX-WS,似乎正在工作。