javaspringspring-remotinghttpinvoker

Spring HTTP invoker waits one second before processing next request


I have set up an spring http invoker example as described here http://static.springsource.org/spring/docs/3.1.x/spring-framework-reference/html/remoting.html in section 20.4

If i do several service calls in a row (see my for-loop), between the single calls is one second though the server processes the method in less than 4ms.

Any ideas.

Stefan

Here the config and call:

<!-- 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);
}

Solution

  • I just encountered the very same problem:

    Unfortunately, I was unable to find a reason for this odd behavior, but there exists a workaround: use jetty instead of the SimpleHttpServerFactoryBean.

    This boils down to changing the xml configuration a little, how exactly is described here.

    The delays disappeared; firing requests even seems to have sped up compared to using SimpleHttpServerFactoryBean in Java 6.