Генерация классов Java из WSDL со сложными типами с использованием Axis2 - PullRequest
1 голос
/ 14 октября 2011

У меня есть веб-сервис, встроенный в .NET (2.0, я считаю), и WSDL для него был автоматически сгенерирован фреймворком.Я пытаюсь создать для него Java-клиента и использую wsdl2java Axis2 для генерации классов-заглушек с привязкой данных ADB (главным образом потому, что ведущий партнер этого клиента делал то же самое для сервисов, написанных на 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--

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

Когда wsdl2java генерирует код для использования этой службы, эти поля определяются как типы типа PRODUCT_NAME_type0, и они ожидают найти PRODUCT_NAME_type0 в качестве тега в ответе SOAP.Наличие Java-кода является обломом, но ожидание его появления в ответе SOAP вызывает ошибки.Есть ли флаг для wsdl2java, который изменит это поведение?Нужно ли использовать другую привязку?Другой инструмент?

1 Ответ

0 голосов
/ 18 октября 2011

Ух ты, я думал, что это будет простой вопрос для кого-то там ...

Я решил, что ADB, вероятно, не предназначен для поддержки WSDL, который у меня был, и переключился на использование wsimport.утилита от JAX-WS, которая, кажется, работает.

...