Spring HTTP调用程序在处理下一个请求之前等待一秒钟

时间:2012-10-19 06:05:43

标签: java spring spring-remoting httpinvoker

我已经在第20.4节

中设置了一个Spring http调用者示例,如http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/remoting.html所述

如果我连续多次进行服务调用(请参阅我的for循环),虽然服务器在不到4ms的时间内处理该方法,但单次调用之间的时间是一秒。

任何想法。

的Stefan

这里是配置和呼叫:

<!-- server side -->
<bean name="configurationServiceExporter"
class="org.springframework.remoting.httpinvoker.SimpleHttpInvokerServiceExporter">
    <property name="service" ref="configurationService" />
    <property name="serviceInterface"
        value="remote.service.ConfigurationService" />
</bean>
<bean id="httpServer"
    class="org.springframework.remoting.support.SimpleHttpServerFactoryBean">
    <property name="contexts">
        <util:map>
                    <entry key="/remoting/ConfigurationService" value-ref="configurationServiceExporter" />
                    </util:map>
    </property>
    <property name="port" value="${port.httpinvoker}" />
</bean>

<!-- client side -->
<bean id="configurationServiceProxy"     class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">
    <property name="serviceUrl"
        value="http://localhost:7777/remoting/ConfigurationService" />
    <property name="serviceInterface"
        value="remote.service.ConfigurationService" />
</bean>

/** here the service call*/
@Component
public class ServiceConsumer {

private ConfigurationService configurationService;

public void do(){
 for (int i = 0; i < 10; i++) 
    this.configurationService.getConfigurationValue(SMTP_HOST);
}

2 个答案:

答案 0 :(得分:0)

发现问题。它没有连接到Spring HTTP Invoker。我更新到Java 7.当我用Java 6运行我的应用程序时,它在更新之前工作(请求之间没有等待一秒钟。如果我知道更多,我会回来。

答案 1 :(得分:0)

我刚遇到同样的问题:

  • Spring Remoting
  • 延迟“完全”1秒
  • Java 7

不幸的是,我无法找到这种奇怪行为的原因,但是存在一种解决方法:使用jetty而不是SimpleHttpServerFactoryBean

这归结为稍微更改xml配置,具体描述如何here

延误消失了;与在Java 6中使用SimpleHttpServerFactoryBean相比,甚至似乎加快了触发请求。