我在使用ResourceHttpMessageConverter
最新的 Spring 3.2.4 版本时遇到了一个奇怪的问题。我有一个带注释的控制器,它返回 a Resource
,特别是 a UrlResource
。这UrlResource
只不过是Request
另一个提供 pdf 文件的远程服务器。通常 pdf 是一个小文件(小于 1MB),但在某些情况下会更大。如果文件很大,与我的控制器联系的客户端无法下载文件,从而导致连接关闭错误。我正在使用的代码如下
@Controller
@PreAuthorize(value = "isAuthenticated()")
public class TestController {
@ResponseBody
@RequestMapping(value="/report/", method = RequestMethod.GET,
produces = "application/pdf")
public Resource getReport() {
//Ignore the getResource method, it is not the problem
//this method returns an object of type UrlResource
return this.getResource();
}
}
尽管有一种使用StreamUtils
该类将 复制到InputStream
的UrlResource
解决方法,OutputStream
但HttpServletResponse
我想确定是否还有其他方法可以避免这种情况,并依赖 SpringMessageConverter
基础架构而不是在我的代码中重新实现相同的逻辑控制器。如果可能的话,是否有任何春季开发人员可以为我指明正确的方向,或者如果这是一个错误,请告诉我,以便我报告它。谢谢!