FileSystemResource作为Spring rest控制器中的ResponseBody给出了ClassCastException

时间:2014-05-28 16:18:57

标签: java rest spring-mvc

我已经定义了一个控制器,它提供如下本地内容:

@RequestMapping(value = PATH_CONTENT, method = RequestMethod.GET)
@ResponseBody
public ResponseEntity<FileSystemResource> getContent(
    @PathVariable(URI_PATH_PARAM_CONTAINER_UID) String containerUid,
    @PathVariable(URI_PATH_PARAM_DOC_UID) String docUid) {
    ...
}

在客户端: 我将ResourceHttpMessageConverter添加到RestTemplate messageConverters。 当我最后拨打以下电话时:

ResponseEntity<FileSystemResource> response = getMyRestClient()
        .getContent(url, null, FileSystemResource.class);
FileSystemResourcecontent = response.getBody();

这会产生ClassCastException,说它无法将ByteArrayResource投射到FileSystemResource

我可以对我的代码进行一些修改,以返回Resource而不是FileSystemResource,事情就会奏效。但我真的想知道为什么这个例外?我也不想直接写HttpServletResponse,因为我想使用Spring的HttpMessageConverter框架。

0 个答案:

没有答案