最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決feign微服務間的文件上傳報錯問題

 更新時間:2021年06月30日 11:48:40   作者:Bee.F  
這篇文章主要介紹了解決feign微服務間的文件上傳報錯問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

A微服務調用B服務的上傳文件接口報錯:

the request was rejected because no multipart boundary was found

spring cloud版本 H

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-dependencies</artifactId>
    <version>Hoxton.SR8</version>
    <type>pom</type>
    <scope>import</scope>
</dependency>

如果你是使用feign相信你已經(jīng)引入openfeign的依賴了;

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

服務提供者接口:

//服務提供者上傳文件接口
@PostMapping(value = " /file/upload")
public ResultModel<FileInfo> fileUpload(@RequestParam("access_token") String accessToken, @RequestParam("file") MultipartFile file) {
    //返回保存文件信息的實體類
    FileInfo fileInfo = fileInfoService.uploadFile(file);
    return ResultModel.ok(fileInfo);
}

消費者接口:

@Component
@FeignClient(value = "file-server")
public interface FileInfoFeignService {
    @PostMapping(value = "/file/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
    public ResultModel<FileInfo> fileUpload(@RequestParam("access_token") String accessToken, @RequestPart("file") MultipartFile file);
}

必須加

consumes = MediaType.MULTIPART_FORM_DATA_VALUE

MultipartFile file 前面的注解必須是@RequestPart

消費者controller類:

//消費者上傳文件接口
@PostMapping(value = "/fileUpload")
public ResultModel<FileInfo> fileUpload(@RequestParam("access_token") String accessToken, @RequestPart("file") MultipartFile file) {
    return fileInfoFeignService.fileUpload(accessToken, file);
}

這樣就完成了!

自己調試了很多遍,感覺其他的博客寫的亂七八糟的。

feign上傳文件踩坑及解決

通過 feign 調用文件服務提供者接口時,需傳輸 文件file ,服務調用者有時會報錯誤:

feign.FeignException$BadRequest: status 400 reading

在這里插入圖片描述

服務提供者會報 Required request part 'file' is not present 錯誤。

這是因為服務調用者MultipartFile的value跟服務提供者@RequestPart中的value值不一樣導致的。

在服務調用者MultipartFile的value要跟服務提供者的@RequestPart中的value值一樣。不然它會拋出400異常!??!

示例

服務調用者

@PostMapping("/xxx/file")
public xx uploadOrderFilesToOSS(@ApiParam("附件") @RequestParam("file") MultipartFile[] file) {
   return xxxService.uploadOrderFilesToOSS(file);
}

Feign

@PostMapping(value = "/file", produces = {MediaType.APPLICATION_JSON_UTF8_VALUE}, consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
xxx uploadSigleFile(@RequestParam("path") String path, @RequestPart("file") MultipartFile file);

服務提供者

@PostMapping(value = "/file", produces = {MediaType.APPLICATION_JSON_UTF8_VALUE}, consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public xxx uploadSigleFile(@RequestParam("path") String path, @RequestPart("file") MultipartFile file) {
  return fileService.uploadFileToOSS(path, file);
}

可以通過以下代碼查看請求參數(shù)

Collection<Part> parts = request.getParts();
logger.info(JSONObject.toJSONString(parts, true));

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • hibernate 命名查詢如何實現(xiàn)

    hibernate 命名查詢如何實現(xiàn)

    Hibernate允許在映射文件中定義字符串形式的查詢語句,這種查詢方式成為命名查詢,需要的朋友可以參考下
    2012-11-11
  • java 加密之RSA算法加密與解密的實例詳解

    java 加密之RSA算法加密與解密的實例詳解

    這篇文章主要介紹了java 加密之RSA算法加解密與解密的實例詳解的相關資料,需要的朋友可以參考下
    2017-07-07
  • Java 超詳細講解異常的處理

    Java 超詳細講解異常的處理

    異常就是不正常,比如當我們身體出現(xiàn)了異常我們會根據(jù)身體情況選擇喝開水、吃藥、看病、等 異常處理方法。 java異常處理機制是我們java語言使用異常處理機制為程序提供了錯誤處理的能力,程序出現(xiàn)的錯誤,程序可以安全的退出,以保證程序正常的運行等
    2022-04-04
  • java模擬多線程http請求代碼分享

    java模擬多線程http請求代碼分享

    本篇文章給大家分享了java模擬多線程http請求的相關實例代碼,對此有需要的可以跟著測試下。
    2018-05-05
  • SpringBoot自動裝配的原理與使用

    SpringBoot自動裝配的原理與使用

    在現(xiàn)代的軟件開發(fā)中,依賴管理是一個關鍵的任務,隨著應用程序規(guī)模的增長,手動管理對象之間的依賴關系變得越來越復雜,為了解決這個問題,Spring Boot提供了一種強大的功能,即自動裝配,感興趣想要詳細了解可以參考下文
    2023-05-05
  • Spring AOP的幾種實現(xiàn)方式總結

    Spring AOP的幾種實現(xiàn)方式總結

    本篇文章主要介紹了Spring AOP的幾種實現(xiàn)方式總結,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • JAVA環(huán)境搭建之MyEclipse10+jdk1.8+tomcat8環(huán)境搭建詳解

    JAVA環(huán)境搭建之MyEclipse10+jdk1.8+tomcat8環(huán)境搭建詳解

    本文詳細講解了MyEclipse10+jdk1.8+tomcat8的JAVA環(huán)境搭建方法,希望能幫助到大家
    2018-10-10
  • SpringBoot整合MybatisPlusGernerator實現(xiàn)逆向工程

    SpringBoot整合MybatisPlusGernerator實現(xiàn)逆向工程

    在我們寫項目的時候,我們時常會因為需要創(chuàng)建很多的項目結構而頭疼,本文主要介紹了SpringBoot整合MybatisPlusGernerator實現(xiàn)逆向工程,具有一定的參考價值,感興趣的可以了解一下
    2024-05-05
  • Java設計模式之java迭代器模式詳解

    Java設計模式之java迭代器模式詳解

    這篇文章主要介紹了java迭代器模式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-09-09
  • 淺談Maven的build生命周期和常用plugin

    淺談Maven的build生命周期和常用plugin

    Maven和gradle應該是現(xiàn)代java程序員中使用的最多的兩種構建工具。在它們出現(xiàn)之前,則是ant的天下。本文將介紹Maven的build生命周期和常用plugin。
    2021-06-06

最新評論

化隆| 同德县| 东海县| 思茅市| 紫阳县| 略阳县| 依安县| 长宁县| 上思县| 兰考县| 宁城县| 刚察县| 雷山县| 大方县| 寻乌县| 金塔县| 汕头市| 磴口县| 马边| 扶绥县| 乾安县| 舟曲县| 南华县| 古田县| 黄浦区| 安多县| 虎林市| 甘泉县| 怀仁县| 阳信县| 那曲县| 昌平区| 繁昌县| 定结县| 彭水| 桓台县| 年辖:市辖区| 武隆县| 贡觉县| 西吉县| 文化|