Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring mvc 与Spring MVC'一起使用时,恢复Jetty 7延续时出现问题;s@RequestBody_Spring Mvc_Jetty_Jackson_Long Polling - Fatal编程技术网

Spring mvc 与Spring MVC'一起使用时,恢复Jetty 7延续时出现问题;s@RequestBody

Spring mvc 与Spring MVC'一起使用时,恢复Jetty 7延续时出现问题;s@RequestBody,spring-mvc,jetty,jackson,long-polling,Spring Mvc,Jetty,Jackson,Long Polling,我试图在依赖于springmvc@RequestBody+Jackson的控制器操作上使用Jetty continuation来反序列化json请求。挂起请求可以很好地工作,但是当恢复连接(回复请求)时,Jackson已经“使用”了请求读取器实例,因此反序列化请求体失败。至少这是我目前为止最好的理论 public @ResponseBody MyResponse createTrip(@RequestBody MyRequest request, HttpServletRequest httpR

我试图在依赖于
springmvc
@RequestBody
+Jackson的控制器操作上使用Jetty continuation来反序列化json请求。挂起请求可以很好地工作,但是当恢复连接(回复请求)时,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
}

有什么想法吗

我没有找到在合理的时间内使用
@RequestBody
解决这个问题的方法。但是我可以通过手动调用Jackson在初始方法调用期间取消序列化请求来解决这个问题

另一种可能性是,由于Jackson默认在绑定后关闭输入流/读取器,这可能会把事情搞砸。但是有一个Jackson特性可以防止这种自动关闭(
mapper.configure(JsonParser.feature.auto\u CLOSE,false)
,或者类似的东西)。

非常有趣!有空的时候我会试试的。如果Jackson不处理请求,我假设Jetty会在请求处理完毕后关闭所有打开的流和读卡器?