2011-04-20 60 views
3

使用下面的命令Axis生成所有类但不生成Axis2?

我已经生成的存根

轴: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选项,认为它们可能会工作,但是ports没有与此相关的东西。我完成后就明白了。

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

请帮忙。

谢谢。

+0

Axis2中也生成所有类,但它创建包含在存根内部类。你可以从存根对象中检索这些类。 – 2012-08-20 11:35:48

回答

1

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

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

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

还有臭虫在Apache Axis的JIRA,其中提到使用-g VS不使用它时,不同的豆类: http://issues.apache.org/jira/browse/AXIS2-3988