1

我在使用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该类将 复制到InputStreamUrlResource解决方法,OutputStreamHttpServletResponse我想确定是否还有其他方法可以避免这种情况,并依赖 SpringMessageConverter基础架构而不是在我的代码中重新实现相同的逻辑控制器。如果可能的话,是否有任何春季开发人员可以为我指明正确的方向,或者如果这是一个错误,请告诉我,以便我报告它。谢谢!

4

0 回答 0