显示大型PDF文件时出现Resttemplate.exchange()问题

时间:2018-06-18 17:31:38

标签: spring grails groovy buffer heap-memory

只有低于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()])
    }
}

0 个答案:

没有答案