Apache CXF wsdl не включает определения типов данных - PullRequest
0 голосов
/ 31 октября 2011

Я использую Apache CXF 2.4.2 для реализации веб-службы SOAP.Я следовал / адаптировал учебник (см. Следующую ссылку) для создания веб-сервиса по контракту.

http://confluence.highsource.org/display/HJ3/Apache+CXF+Tutorial+-+Building+JAX-WS,+JAXB+and+JPA-based+web+service+with+Apache+CXF,+Spring+and+Hyperjaxb3

В этом примере вы можете увидеть wsdl иXSD-файл, который содержит модель данных.Эта модель данных импортируется файлом wsdl.После этого я генерирую код с помощью Maven cxf-codegen-plugin (v. 2.4.2).Все вроде нормально.Я могу скомпилировать свой проект, а также использовать веб-сервис на своем локальном компьютере с помощью обозревателя Eclipse Webservices.

Но на другом компьютере я вижу только операции веб-сервиса.Wsdl не содержит модель данных (http://***:18080/webservice/Test?wsdl), а другой потребитель не может сгенерировать клиента.

Я проверил другой случай, когда я помещаю объявления типов данных непосредственно в wsdl, но эффект тот же :-(Кажется, что Apache CXF создает на лету новый wsdl.

написать wsdl -> генерировать код -> apache cxf генерирует wsdl на лету

Есть ли переключатели, где я могу изменить это поведение?

Спасибо

~ Крис

Ответы [ 2 ]

0 голосов
/ 21 ноября 2011

У меня были проблемы с публикацией оригинального WSDL.

Вы можете попробовать ответить и сообщить мне

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

Пожалуйста, выполните следующие действия:

  1. Создайте папку META-INF / wsdl в вашем «main / resources» и поместите в нее свой файл wsdl и файлы xsd.
  2. Установите параметр extraarg -wsdlLocation для плагина cxf-codegen-plugin следующим образом (см. http://cxf.apache.org/docs/maven-cxf-codegen-plugin-wsdl-to-java.html и http://cxf.apache.org/docs/wsdl-to-java.html):

    <wsdlOptions>
      <wsdlOption>
        ...
        <extraargs>
          ...
          <extraarg>-wsdlLocation </extraarg>
          <extraarg>wsdl/yourfile.wsdl</extraarg>
          ...
        <extraargs>
      <wsdlOption>
        ...
    <wsdlOptions>
    
  3. Убедитесь, что ваши wsdl и xsd связаны в вашем банке. Должно быть сделано по умолчанию.

CXF должен предоставлять ваш файл, а не его сгенерированный.

...