Тайм-аут WebSphere Spring Apache CXF SOAP WebService Client не работает

Мне нужно настроить клиент 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?


person Dinusha Kariyawasam    schedule 16.03.2015    source источник
comment
Для справки, версия cxf — 2.7.7, а Spring — 3.2.7.   -  person Dinusha Kariyawasam    schedule 16.03.2015


Ответы (1)


Я понял, что моя конфигурация CXF, упомянутая выше, работает нормально, но среда WAS, в которой развернуто приложение, фактически переопределяет любую конфигурацию, которую вы определяете на уровне приложения. Поэтому я следовал эта ссылка, чтобы скопировать и определить пользовательскую политику транспорта HTTP, где вы можете установить значения для указанных ниже тайм-аутов.

Тайм-аут чтения
Тайм-аут записи
Тайм-аут подключения

person Dinusha Kariyawasam    schedule 23.03.2015