一尘不染

如何在Spring WebServiceTemplate中设置超时

spring

我org.springframework.ws.client.core.WebServiceTemplate用于拨打Web服务。如何为通话配置超时。


阅读 707

收藏
2020-04-20

共1个答案

一尘不染

如果你使用的是Spring Webservices 2.1.0版本,则可以使用HttpComponentsMessageSender设置超时。

Spring不推荐使用CommonsHttpMessageSender,因此不再推荐使用。

实现方式中,我定义了WebServiceTemplate以使用HttpComponentsMessageSender。

值以毫秒为单位

<bean id="webServiceTemplate" class="org.springframework.ws.client.core.WebServiceTemplate">
    <property name="defaultUri" value="${endpoint.url}" />
    <property name="marshaller" ref="marshaller" />
    <property name="unmarshaller" ref="unmarshaller" />
    <property name="messageSender">
        <bean class="org.springframework.ws.transport.http.HttpComponentsMessageSender">
            <property name="connectionTimeout" value="1200000" />
            <property name="readTimeout" value="1200000" />
        </bean>
    </property>
</bean>

只要确保你已经在pom文件中,就添加了以下内容

<dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.2.1</version>
        <scope>compile</scope>
    </dependency>
2020-04-20