如何在Spring 3中处理客户端取消请求?

时间:2013-01-25 20:44:21

标签: java spring-mvc

我有一个带有@RequestMapping映射方法的Controller,它返回一个JSON格式的对象,所以它也有@ResponseBody。获取它应该返回的对象的一部分是对象的wait(),在生产者/消费者类型的情况下。

客户端当然可以随时取消它们的请求,但我希望能够在客户端取消时中断控制器正在执行的wait()命令。目前,ajax请求会在statusType超时时抛出客户端错误,我可以在客户端处理它。但它似乎仍然在服务器端等待我要清理的线程。

但是怎么样?

我似乎记得在旧的Web应用程序中收到Socket Closed类型的错误,我不会在WebLogic 10.3上看到这个Spring 3应用程序发生的事情

当控制器坐在wait()上时,我看到当客户端请求被取消时这样记录:

“< [STUCK] ExecuteThread:'0'代表队列:'weblogic.kernel.Default(自我调整)'一直忙于”623“秒处理请求等......”

1 个答案:

答案 0 :(得分:0)

我建议将您的控制器逻辑包含在try / catch中,并尝试杀死catch块中的线程。