Относительный путь для WSDL в клиенте Web-сервиса CXF - PullRequest
4 голосов
/ 02 декабря 2010

В моем приложении я использую много веб-сервисов.Поскольку WSDL не меняется, я включил файлы WSDL в свой проект.Если я использую WSDL2Java Tool из CXF, абсолютный путь к местоположениям WSDL будет жестко задан.

Теперь мой вопрос: как изменить параметр «wsdlocation» в аннотации @WebserviceClient на относительный путь?

Вот пример:

@WebServiceClient(name = "Time", 
                  wsdlLocation = "file:/C:/Users/dominik/Documents/NetBeansProjects/Webservices/src/wsdl/Time.wsdl" ) /*I want this path to be relative */
public class Time extends Service {

Ответы [ 3 ]

11 голосов
/ 27 марта 2012

Я наконец понял, как сделать это правильно сегодня.Просто поместите файлы в папку с вашими ресурсами, и затем вы можете использовать wsdlLocation для ссылки на них примерно так:

<wsdlLocation>classpath:wsdl/myservice.wsdl</wsdlLocation>

Смотрите мой ответ на похожий вопрос здесь: https://stackoverflow.com/a/9875701/1190144

1 голос
/ 07 марта 2012

Вот что можно сделать для генерации пустого местоположения wsdl

<wsdlOptions>
  <wsdlOption>
    <wsdl>${basedir}/src/main/wsdl/service.wsdl</wsdl>
    <extraargs>
      <extraarg>-wsdlLocation</extraarg>
      <wsdlurl />
    </extraargs>
  </wsdlOption>
</wsdlOptions>

Клиент может получить местоположение wsdl в качестве аргумента и стать переносимым клиентом.Вот почему я искал использовать относительный путь: добиться портативного клиента

0 голосов
/ 02 декабря 2010

У инструмента wsdl2java есть флаг -wsdlLocation, который можно использовать для указания точной строки, которая там находится.

...