如何使用RestTemplate上传超大文件呢?

娜扎 Spring Cloud 发布时间:2022-05-13 23:48:24 阅读数:17575 1
下文笔者讲述RestTemplate上传大文件的方法分享,如下所示:
今天使用RestTemplate上传大文件时,出现以下错误
   java.lang.OutOfMemoryError: Java heap space
 
 出现此异常的原因:
     post大文件时,先缓冲请求正文内容,此时就会导致内存溢出

那么如何解决这个问题呢?
 我们只需 requestFactory.setBufferRequestBody(false);
 即可解决此类异常
例:
---设置restTemplate
    @Bean
    public RestTemplate restTemplate() {
        SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
        requestFactory.setBufferRequestBody(false);
        RestTemplate rest = new RestTemplate(requestFactory);
		return rest;
    }

---restTemplate使用 
      FileSystemResource resource = new FileSystemResource(new File(path));
      HttpEntity<FileSystemResource> httpEntity = new HttpEntity<>(resource,headers);
      
      SimpleClientHttpRequestFactory requestFactory = new SimpleClientHttpRequestFactory();
      requestFactory.setBufferRequestBody(false);
      RestTemplate rest = new RestTemplate(requestFactory);
      rest.put(upload_url, httpEntity);
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaFramework/SpringCloud/202205/3366.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者