Axis генерирует все классы, но не Axis2?

#web-services #wsdl #axis2 #axis #wsdl2java

#веб-сервисы #wsdl #apache-axis #axis #wsdl2java

Вопрос:

Я сгенерировал заглушки, используя следующие команды

Axis: 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, думал, что они могут сработать, но порты не имели к этому никакого отношения. Я понял после того, как сделал это.

Примечание: Я мог бы сгенерировать все с помощью Axis2 при использовании опций -ss -g, которые также генерируют серверную часть. Очевидно, что это обходной путь, и мне не нужны по крайней мере некоторые из них.

Пожалуйста, помогите.

Спасибо.

Комментарии:

1. Axis2 также генерирует все классы, но создает внутренние классы, которые включены в заглушку. вы можете извлечь эти классы из объекта-заглушки.

Ответ №1:

Я тоже заметил это с чем-то немного другим. При генерации заглушек с Axis2 1.6 по сравнению с Great Plains 10 некоторые типы отсутствовали. Все они были сложными типами xsd, которые были производными от других типов в определении схемы. Это вызвало ошибку только при разборе ответа, который включал эти отсутствующие типы. Ошибка была выдана из ExtensionMapper.

После генерации с помощью опции ‘-g’ в ExtensionMapper включается больше типов (включая эти отсутствующие производные типы), и проблема устранена.

Я не уверен, какое отношение генерация кода на стороне сервера имеет к правильному разбору и генерации компонентов adb, но сейчас это работает.

В Apache Axis JIRA также есть ошибка, в которой упоминаются разные компоненты при использовании -g, а не при его неиспользовании:http://issues.apache.org/jira/browse/AXIS2-3988