Мне нужно настроить клиент SOAP WebService с определенными значениями времени ожидания для попыток подключения и вызовов службы.
Клиент WS — это jar-зависимость, сгенерированная с помощью WSDL с подключаемым модулем Maven cxf-codegen. Я использую эту клиентскую банку в своем веб-приложении как зависимость от maven и вызываю операции службы.
Итак, мой webapp pom содержит:
<dependency>
<groupId>my.web.service</groupId>
<artifactId>web-service-client-jar</artifactId>
<version>x.x.x</version>
</dependency>
вместе с зависимостями Apache CXF:
<!-- CXF dependencies -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>${cxf.version}</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>${cxf.version}</version>
</dependency>
И я определил ниже конфигурацию spring для установки тайм-аутов, которые не работают..
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:http-conf="http://cxf.apache.org/transports/http/configuration"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://cxf.apache.org/transports/http/configuration http://cxf.apache.org/schemas/configuration/http-conf.xsd http://cxf.apache.org/core http://cxf.apache.org/schemas/core.xsd">
<http-conf:conduit name="*.http-conduit">
<http-conf:client ConnectionTimeout="20000" ReceiveTimeout="10000" />
</http-conf:conduit>
<cxf:bus>
<cxf:outInterceptors>
<ref bean="fileuploadlogOutbound" />
</cxf:outInterceptors>
</cxf:bus>
<!-- Outbound Message Logging -->
<bean id="fileuploadlogOutbound" class="test.logging.MyLoggingOutInterceptor">
<property name="prettyLogging" value="true" />
</bean>
Но, к моему удивлению, outInterceptors, определенные для красивого ведения журнала, работают нормально. Следовательно, я сомневаюсь, есть ли в моей конфигурации какие-либо ошибки или нет. К вашему сведению, я пытаюсь заставить это работать в среде WebSphere 8.5.
Вот как я создаю экземпляр WS-клиента весной:
<jaxws:client id="documentUploadServiceJaxwsClient"
serviceClass="org.tempuri.IDocumentUploadService" address="#serviceEndpointString" >
<jaxws:binding>
<soap:soapBinding version="1.2" mtomEnabled="true" />
</jaxws:binding>
</jaxws:client>
Есть ли какие-либо шаги, отсутствующие в конфигурации Spring, или мне нужно изучить конкретную конфигурацию WebSphere 8.5, которая будет обеспечивать соблюдение тайм-аутов соединения и ответа HTTP / SOAP?