Мне нужно вызвать Soap Client внутри микросервиса. Он отлично работает в тестовой среде. При перемещении приложения в производственную среду оно не может выполнить вызов Soap, поскольку не может создать объект @WebServiceClient и выдать исключение:
javax.xml.ws.WebServiceException: Failed to access the WSDL at:http://...
Я попытался выяснить, что всякий раз, когда совершается вызов мыла, при создании @Объект WebServiceClient, он всегда снова получает конечную точку WSDL. И теперь в рабочей машине он не может получить доступ к конечной точке, которая находится в тестовой среде.
Я не знаю, зачем ему снова нужно получать WSDL при создании нового объекта. Как я могу обойти этот шаг? Вот мой файл pom для сгенерированного Java-кода WSDL:
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>${cxf.version}</version>
<executions>
<execution>
<id>generate-sources-id</id>
<phase>generate-sources</phase>
<configuration>
<useCompileClasspath>true</useCompileClasspath> <!-- if you don't use this, the soapui test bundle will cause classloading
issues with this plugin. -->
<sourceRoot>${project.basedir}/src/main/resources/templates/generated</sourceRoot>
<wsdlOptions>
<wsdlOption>
<wsdl>http://xxx?WSDL</wsdl>
<wsdlLocation>http://xxx?WSDL</wsdlLocation>
<extraargs>
<extraarg>-verbose</extraarg>
<extraarg>-all</extraarg>
</extraargs>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
</plugin>
Большое спасибо.