我正在尝试在依赖Spring MVC
@RequestBody
+ Jackson来反序列化json请求的控制器操作上使用Jetty延续。暂停请求可以很好地工作,但是当恢复连接时(回复请求),Jackson已经“使用”了请求读取器实例,因此反序列化请求主体失败。至少这是我迄今为止最好的理论。
public @ResponseBody MyResponse createTrip(@RequestBody MyRequest request, HttpServletRequest httpRequest) {
// De-serializing the request body fails the second time, most likely because
// Jackson has already exhausted the reader instance.
// ... continuation stuff
}
有什么想法吗?
答案 0 :(得分:1)
另一种可能性是,默认情况下,Jackson默认情况下会在绑定后关闭输入流/阅读器,这可能会搞砸事情。但是有一个Jackson功能可以阻止这种自动关闭(mapper.configure(JsonParser.Feature.AUTO_CLOSE, false)
,或类似的东西)。
答案 1 :(得分:0)
我没有找到在合理的时间内使用@RequestBody
解决此问题的方法。但我能够通过手动调用Jackson在初始方法调用期间反序列化请求来解决此问题。