我正在开发一个spring应用程序。我需要一个异步请求,所以我遇到了一个返回可调用的请求。
TestController.java
@RequestMapping(value ="/views/async", method = RequestMethod.GET)
public Callable<String> getViewAsyncWay(){
return new Callable<String>(){
Thread.sleep(5000);
return "test-async"
};
}test-async.jsp
<div>This page is delivered with async request.</div>home.jsp
$(document).ready(function(){
$('btn-aync-req').on('click', function(){
$.ajax({
type: 'GET',
url: "<c:url value="/views/async"/>",
success: function(data){
$('#container').html(data);
}
});
});
});
<body>
<div id="container">
</div>
<input type="button" id="btn-async-req" value="Send Request"/>
</body>现在,当我单击发送请求时,服务器日志显示请求正常处理,返回的资源是/view/aysnc.jsp(这是我的请求uri)
我不知道我在犯什么错误。
我在applicationContext.xml中添加了以下内容:
<task:annotation-driven/>在我的项目中,正常的spring请求可以正常工作。
发布于 2015-03-04 17:49:14
我终于想明白了。在我的windows环境中,它没有抛出任何错误,但也没有工作。
最后,我搬到了ubuntu,得到了真正的错误。在web.xml中,我输入了以下行:
<async-supported>true</async-supported>现在,上面的一行应该被输入!!
<servlet>
<servlet-name>appServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>/WEB-INF/spring-servlet.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet>成功了!!感谢@Sotirios Delimanolis,在他发表评论后,我转到linux环境中获取日志:)
此外,还必须为异步请求配置超时值。要获得更详细的解释,请查看链接中的超时部分。
https://stackoverflow.com/questions/28857136
复制相似问题