【问题标题】:Axis generates all classes but not Axis2?Axis 生成所有类但不生成 Axis2?
【发布时间】:2011-08-09 11:42:11
【问题描述】:

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

轴: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 生成所有内容,这也会生成服务器端。显然,这是一种解决方法,我至少不需要其中的一些。

请帮忙。

谢谢。

【问题讨论】:

  • Axis2 也会生成所有类,但它会创建包含在存根中的内部类。您可以从存根对象中检索这些类。

标签: web-services wsdl axis2 axis wsdl2java


【解决方案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

【讨论】:

    猜你喜欢
    • 2012-06-14
    • 2015-02-25
    • 1970-01-01
    • 2012-03-16
    • 1970-01-01
    • 1970-01-01
    • 2022-08-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多