Spring 和 Wildfly 异步请求

Posted

技术标签:

【中文标题】Spring 和 Wildfly 异步请求【英文标题】:Spring & wildfly async requests 【发布时间】:2014-07-31 19:40:35 【问题描述】:

向控制器执行异步请求时(不使用注释)我收到此错误有人知道为什么吗?

我使用的是 spring 4.0.5 和 wildfly 8.1.0

16:42:48,621 DEBUG [io.undertow.request.io](默认任务 20)UT005013:发生 IOException:java.io.IOException:UT000029:通道是 关闭中间块,如果您尝试写入分块数据,您 在通道全部写入之前无法关闭通道。

【问题讨论】:

你能给我提供sn-p代码来重现它吗? 我遇到了同样的错误,对此有任何更新 @KrzysztofMiksa 抱歉耽搁了这里是一个示例应用程序github.com/charlires/rest-api-template 【参考方案1】:

当我将 Wildfly 8.0 final 与 Spring 4.1.0、JSF 2.0 和 JDK 8.0_u25 一起使用时,我遇到了同样的异常。每次发生时,我的服务器 CPU 处理都会增加 25%。

我使用 Wildfly 8.2.0 Final 解决了 CPU 负载问题。

我观察了我的服务器将近 8 天,然后我意识到当客户端向服务器发送请求并且服务器需要额外的时间来生成响应时会发生此异常。如果用户在收到响应之前关闭了浏览器窗口或注销,那么当服务器尝试将响应发送到客户端时,就会出现IOException

【讨论】:

以上是关于Spring 和 Wildfly 异步请求的主要内容,如果未能解决你的问题,请参考以下文章

Spring整合JMS异步消息

Spring MockRestServiceServer 处理多个异步请求

在spring服务器中发送长异步请求时保持活动状态

Spring Boot - 异步任务

Spring Boot 使用WebAsyncTask异步返回结果

spring异步方法@Async