只有低于10mb的文件,它能够使用Resttemplate.exchange()渲染到UI,超出它抛出堆空间,我猜这是因为无法以块的形式流式传输或缓冲。我不知道如何使用RestTemplate.exchange()将大文件流式传输到UI。 以下是片段。如果有任何人有任何见解让我知道。我正在使用Groovy
def getPDF()
{
List<HttpMessageConverter<?>> messageConverters = new ArrayList<HttpMessageConverter<?>>();
messageConverters.add(new ByteArrayHttpMessageConverter());
RestTemplate restTemplate = new RestTemplate(messageConverters);
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
HttpEntity<String> entity = new HttpEntity<String>(headers);
ResponseEntity<byte[]> response = restTemplate.exchange("some URL",HttpMethod.GET, entity, byte[].class);
if ( response.getStatusCode( ) == HttpStatus.OK )
{
log.println(response.getBody().size()+ " ----------------->Total Size")
render(view: "ViewPdf", model: [billingData: response.getBody().toString()])
}
}