Spring DelferredResult不是轮询

Spring DelferredResult不是轮询,spring,asynchronous,spring-io,Spring,Asynchronous,Spring Io,我正在尝试使用中的基本示例创建一个多用户聊天环境 我无法找到我的代码到底出了什么问题。请求没有轮询,只是持续不断地向服务器发送请求 以下是我的代码 web.xml <servlet> <servlet-name>dispatcher</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

我正在尝试使用中的基本示例创建一个多用户聊天环境

我无法找到我的代码到底出了什么问题。请求没有轮询,只是持续不断地向服务器发送请求

以下是我的代码

web.xml

<servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
    <async-supported>true</async-supported>
</servlet>
<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>
<mvc:annotation-driven>
    <mvc:async-support default-timeout="30000" />
    <mvc:message-converters register-defaults="false">
        <bean id="jacksonMessageConverter"
            class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" />
    </mvc:message-converters>
</mvc:annotation-driven>
我明白了。 如果我们设定结果

deferredResult.setResult();
它不等待,因此进入递归调用

function chatModel(){
var started = false;
var that = this;
that.activePollingXhr = ko.observable(null);
function pollForMessages() {
    that.activePollingXhr($.ajax({
        url : contextPath + '/chat/messages',
        type : "GET",
        cache : false,
        success : function(messages) {
            console.log(messages);
        },
        error : function(xhr) {
            if (xhr.statusText != "abort" && xhr.status != 503) {
                console.log('Unable to Connect');
            }
        },
        complete : pollForMessages
    }));
}
deferredResult.setResult();