如何在Spring WebServiceTemplate中设置超时

如何在Spring WebServiceTemplate中设置超时

问题描述:

我正在使用 org.springframework.ws.client.core.WebServiceTemplate 。如何为调用配置超时。

I am using org.springframework.ws.client.core.WebServiceTemplate for making Web Service calls. How can i configure timeout for the call.

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

If you are using Spring Webservices 2.1.0 version, You can set timeout using HttpComponentsMessageSender.

CommonsHttpMessageSender 已被弃用,不再被Spring推荐。

CommonsHttpMessageSender are deprecated and not recommended by Spring anymore.

我实现它的方式,我定义我的WebServiceTemplate使用HttpComponentsMessageSender。

The way I have it implemented, I define my WebServiceTemplate to use 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文件中添加了以下内容

Just Make sure you have in your pom file, you added the following

<dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.2.1</version>
        <scope>compile</scope>
    </dependency>