1:spring4x后httpinvoker默认采用SimpleHttpInvokerRequestExecutor调度器,默认不设超时时间
2:网上大多数采用CommonsHttpInvokerRequestExecutor。
两个缺点,
一:性能低于SimpleHttpInvokerRequestExecutor;
二:spring4x后移除该类。
3:解决方案
一:写一个类,继承SimpleHttpInvokerRequestExecutor。然后代码中设定超时时间 和其他自定义功能;
PS:配置方法与下方基本相同
二:配置SimpleHttpInvokerRequestExecutor的超时时间。(推荐)
<bean id="tspServiceHttpInvokerServices" class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">
<property name="serviceUrl" value="http://localhost:8077/api/remoting/ServiceImplHttpInvoker"></property>
<property name="serviceInterface" value="group.zealot.api.webservice.remoting.ServiceRemoting"></property>
<property name="httpInvokerRequestExecutor">
<ref bean="httpInvokerRequestExecutor"/>
</property>
</bean>
<bean id="httpInvokerRequestExecutor" class="org.springframework.remoting.httpinvoker.SimpleHttpInvokerRequestExecutor">
<property name="connectTimeout" value="5000"></property>
<property name="readTimeout" value="10000"></property>
</bean>