Я работаю над обновлением услуг, предлагаемых определенным клиентом, через файлы WSDL.Эти сервисы были предложены в одном файле WSDL в предыдущей версии, для которого у меня был один файл bindings.xml для обработки части настройки.Теперь эти услуги предлагаются в нескольких файлах WSDL (всего 9), которые имеют внутренние ссылки между собой.Я думаю, что мне понадобится несколько файлов привязки для обработки настроек.Однако wsimport, похоже, не работает с этим подходом.
Я попытался:
изменить существующее местоположение атрибута wsdlLocation, чтобы оно указывало на один из последних файлов WSDL, который требует настройки;другие файлы также должны быть обработаны для настройки, как мне сделать это с одним атрибутом wsdlLocation в файле bindings.xml?
Добавление нескольких файлов привязки с атрибутом wsdlLocation внутри каждого набора вукажите на соответствующий ему файл wsdl, и в этом случае я получаю ниже ошибку компиляции, поскольку существует несоответствие между файлами xml и файлами wsdl.
3. Попытался разделить файлы wsdl на их отдельные папки и скомпилировать их по отдельности, чтоконечно не работал из-за ссылок на интернет.Все, что должно быть выполнено в одной цели, я думаю.
pom.xml:
<plugin>
<groupId>org.jvnet.jax-ws-commons</groupId>
<artifactId>jaxws-maven-plugin</artifactId>
<version>${jaxws-maven-plugin.version}</version>
<executions>
<execution>
<id>etc</id>
<goals>
<goal>wsimport</goal>
</goals>
<configuration>
<sourceDestDir>${project.build.directory}/generated-sources/jaxws-wsimport</sourceDestDir>
<keep>true</keep>
<verbose>true</verbose>
<wsdlDirectory>src/main/resources/META-INF/wsdl</wsdlDirectory>
<wsdlFiles>
<wsdlFile>Service1.wsdl</wsdlFile>
<wsdlFile>Service2.wsdl</wsdlFile>
</wsdlFiles>
<bindingDirectory>src/main/resources/META-INF/wsdl</bindingDirectory>
<bindingFiles>
<bindingFileService1bindings.xml</bindingFile>
<bindingFile>Service2bindings.xml</bindingFile>
</bindingFiles>
<quiet>true</quiet>
<packageName>com.etc.sim.impl</packageName>
<staleFile>${project.build.directory}/etc.done</staleFile>
<xjcArgs>
<xjcArg>-npa</xjcArg>
</xjcArgs>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
Service1bindings.xml
<jaxws:bindings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:jaxws="http://java.sun.com/xml/ns/jaxws" wsdlLocation="Service1.wsdl">
<jaxws:bindings node="wsdl:definitions/wsdl:portType[@name='ServiceMgmt']/wsdl:operation[@name='addEventsToPackage']">
<jaxws:parameter part="wsdl:definitions/wsdl:message[@name='addEventsToPackageRequest']/wsdl:part[@name='package']"
childElementName="package" name="paramPackage" />
</jaxws:bindings>
<jaxws:bindings node="wsdl:definitions/wsdl:portType[@name='ServiceMgmt']/wsdl:operation[@name='removeEventsFromPackage']">
<jaxws:parameter
part="wsdl:definitions/wsdl:message[@name='removeEventsFromPackageRequest']/wsdl:part[@name='package']"
childElementName="package" name="paramPackage" />
</jaxws:bindings>
</jaxws:bindings>
Service2bindings.xml
<jaxws:bindings xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:jaxws="http://java.sun.com/xml/ns/jaxws" wsdlLocation="service2.wsdl">
<jaxws:bindings node="wsdl:definitions/wsdl:portType[@name='Service2Mgmt']/wsdl:operation[@name='addEventsToPackage']">
<jaxws:parameter part="wsdl:definitions/wsdl:message[@name='addEventsToPackageRequest']/wsdl:part[@name='package']"
childElementName="package" name="paramPackage" />
</jaxws:bindings>
<jaxws:bindings node="wsdl:definitions/wsdl:portType[@name='Service2Mgmt']/wsdl:operation[@name='removeEventsFromPackage']">
<jaxws:parameter
part="wsdl:definitions/wsdl:message[@name='removeEventsFromPackageRequest']/wsdl:part[@name='package']"
childElementName="package" name="paramPackage" />
</jaxws:bindings>
</jaxws:bindings>
The build with mvn clean install gives below error all the time:
*****************************************************************************
Processing: file:sim/src/main/resources/META-INF/wsdl/Service2.wsdl
[INFO] jaxws:wsimport args: [-keep, -s, target/generated-sources/jaxws-wsimport, -verbose, -encoding, UTF-8, -Xnocompile, -p, com.etc.sim.impl, -quiet, -B-npa, -b, sim/src/main/resources/META-INF/wsdl/Service1bindings.xml, -b, sim/src/main/resources/META-INF/wsdl/service2binding.xml, file:/opt/code/iap-test/tools/iap-simulators/vcas-sim/src/main/resources/META-INF/wsdl/service1.wsdl]
[ERROR] "file:-sim/src/main/resources/META-INF/wsdl/Service2.wsdl" is not a part of this compilation. Is this a mistake for "file:/opt/code/iap-test/tools/iap-simulators/vcas-sim/src/main/resources/META-INF/wsdl/Service1.wsdl"?
line 4 of file:sim/src/main/resources/META-INF/wsdl/Service2binding.xml
Failed to parse the WSDL.
******************************************************************************