3

我使用以下命令生成了存根

轴:java org.apache.axis.wsdl.WSDL2Java CrmDiscoveryServiceWsdl.xml:生成所有类

Axis2:wsdl2java.bat -u -uri CrmDiscoveryServiceWsdl.xml:只生成几个类。

       Pattern I observed is, in the wsdl:types section, it has created classes for the <s:element> types but not  <s:complexTypes>. I don't get why. I have to use those complexType elements to consume webservice.

我也尝试过 -pn、-ap 选项,认为它们可能有效,但端口与此无关。我做了之后就明白了。

注意:当我使用 -ss -g 选项时,我可以使用 Axis2 生成所有内容,这也会生成服务器端。显然,这是一种解决方法,我至少不需要其中一些。

请帮忙。

谢谢。

4

1 回答 1

1

我也注意到了这一点,但有些不同。使用 Axis2 1.6 针对 Great Plains 10 生成存根,某些类型丢失。它们都是从模式定义中的其他类型派生的 xsd 复杂类型。这只会在解析包含这些缺失类型的响应时导致错误。ExtensionMapper 引发了错误。

使用 '-g' 选项生成后,ExtensionMapper 中包含了更多类型(包括这些缺失的派生类型)并且问题已得到修复。

我不确定生成服务器端代码与正确解析和生成 adb bean 有什么关系,但它现在可以工作了。

Apache Axis JIRA 中还有一个错误,它在使用 -g 与不使用它时提到了不同的 bean:http: //issues.apache.org/jira/browse/AXIS2-3988

于 2011-08-16T23:25:41.480 回答