У меня есть веб-сервис с поддержкой JAX-WS, WSDL которого мы создаем клиент веб-службы из другого модуля Maven (который я буду называть ws-consumer
).
К лучшему или худшему, мы копируем "опубликованные WSDL" (версию WSDL и XSD, которые служба хранится/сгенерирована в точке выпуска) в нашу папку src/wsdl
ws-consumer
а затем используйте jaxws-maven-plugin
из org.jvnet для создания клиента с использованием jaxws:wsimport
со следующей (усеченной) конфигурацией:
<plugin>
<groupId>org.jvnet.jax-ws-commons</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<version>2.1</version>
<executions>
<execution>
<!--phase>generate-sources</phase -->
<goals>
<goal>wsimport</goal>
</goals>
<configuration>
<wsdlDirectory>src/main/resources/META-INF/wsdl/</wsdlDirectory>
<wsdlFiles>
<wsdlFile>MyWS/MyWS.wsdl</wsdlFile>
</wsdlFiles>
</configuration>
</execution>
</executions>
</plugin>
Теперь сформированный клиентский код имеет следующие аннотации, применяемые на уровне класса:
@WebServiceClient(name = "MyWS", targetNamespace = "http://myws/blah", wsdlLocation = "**file:/C:/some/absolute/path/src/main/resources/META-INF/wsdl/MyWS/MyWS.wsdl"**)
акцент мой
Как вы можете надеяться, wsdlLocation
атрибута wsdlLocation
имеет wsdlLocation
кодированный абсолютный путь, который будет неправильным при развертывании службы.
Могу ли я "контролировать" это, установив его только в META-INF/wsdl/MyWS/MyWS.wsdl
или какое-то другое значение?