1.spring4x 后 httpinvoker 默认采用 SimpleHttpInvokerRequestExecutor 调度器,默认不设超时时间。
2.网上大多数采用CommonsHttpInvokerRequestExecutor。
两个缺点,1)性能低于SimpleHttpInvokerRequestExecutor;2)spring4x后移除该类。
3.采用 spring4x 的方法实现 HttpInvoker 超时配置
1)写一个类,继承SimpleHttpInvokerRequestExecutor。然后代码中设定超时时间 和其他自定义功能;
2)配置SimpleHttpInvokerRequestExecutor的超时时间。(推荐)
<bean id="tspServiceHttpInvokerServices" class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">
<property name="serviceUrl" value="http://localhost:8080/api/remoting/SimHttpInvoker"></property>
<property name="serviceInterface" value="sim.api.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>