我已经定义了一个控制器,它提供如下本地内容:
@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
框架。