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

詳解spring cloud Feign使用中遇到的問題總結(jié)

 更新時(shí)間:2018年01月26日 11:55:22   作者:牛奮lch  
本篇文章主要介紹了詳解spring cloud Feign使用中遇到的問題總結(jié),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

本文介紹了spring cloud Feign使用中遇到的問題總結(jié),分享給大家,具體如下:

問題一:

在前面的示例中,我們講過

@RequestMapping(value = "/user/{id}", method = RequestMethod.GET) 
@GetMapping("/user/{id}") 

這兩個(gè)注解的效果是等價(jià)的,但是在Feign使用中,只能用上面的那種方式,不能直接用@GetMapping,下面我們將前面的那個(gè)示例中,改成@GetMapping注解看下效果,我們發(fā)現(xiàn),修改注解后重新啟動(dòng)服務(wù)的時(shí)候,拋了如下異常:

復(fù)制代碼 代碼如下:

Caused by: java.lang.IllegalStateException: Method findById not annotated with HTTP method type (ex. GET, POST) 

異常的意思是,我們沒有指定HTTP的方法

問題二:

在前面的示例中,我們暴漏Restful服務(wù)的方式如下:

@GetMapping("/template/{id}") 
  public User findById(@PathVariable Long id) { 
    return client.findById(id); 
  } 

這里,findById方法的參數(shù)中,我們直接使用了

@PathVariable Long id 

下面我們將Feign的方式也改成這種

@RequestMapping(value = "/user/{id}", method = RequestMethod.GET) 
  User findById(@PathVariable Long id); 

然后啟動(dòng)服務(wù),我們發(fā)現(xiàn),又拋異常了,異常信息如下:

復(fù)制代碼 代碼如下:

Caused by: java.lang.IllegalStateException: PathVariable annotation was empty on param 0. 

大概的意思是PathVariable注解的第一個(gè)參數(shù)不能為空,我們改成如下的方式:

@RequestMapping(value = "/user/{id}", method = RequestMethod.GET) 
  User findById(@PathVariable("id") Long id); 

再啟動(dòng),發(fā)現(xiàn)一切都o(jì)k了。

問題三:多參數(shù)問題

@RequestMapping(value="/user/name", method=RequestMethod.GET) 
  User findByUsername(final String userName, final String address); 

啟動(dòng)服務(wù)的時(shí)候,會(huì)報(bào)如下異常:

Caused by: java.lang.IllegalStateException: Method has too many Body parameters: public abstract com.chhliu.springboot.restful.vo.User com.chhliu.springboot.restful.feignclient.UserFeignClient.findByUsername(java.lang.String,java.lang.String) 

異常原因:當(dāng)使用Feign時(shí),如果發(fā)送的是get請求,那么需要在請求參數(shù)前加上@RequestParam注解修飾,Controller里面可以不加該注解修飾。

上面問題的解決方案如下:

@RequestMapping(value="/user/name", method=RequestMethod.GET) 
  User findByUsername(@RequestParam("userName") final String userName, @RequestParam("address") final String address); 

問題四:Request method 'POST' not supported

錯(cuò)誤代碼示例:

@RequestMapping(value="/user/name", method=RequestMethod.GET) 
  User findByUsername(final String userName, @RequestParam("address") final String address); 

注意:上面的userName參數(shù)沒有用@RequestParam注解修飾,然后發(fā)送請求,會(huì)發(fā)現(xiàn)被調(diào)用的服務(wù)一直報(bào)Request method 'POST' not supported,我們明明使用的是GET方法,為什么被調(diào)用服務(wù)認(rèn)為是POST方法了,原因是當(dāng)userName沒有被@RequestParam注解修飾時(shí),會(huì)自動(dòng)被當(dāng)做request body來處理。只要有body,就會(huì)被feign認(rèn)為是post請求,所以整個(gè)服務(wù)是被當(dāng)作帶有request parameter和body的post請求發(fā)送出去的。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • SpringBoot整合Swagger2的示例

    SpringBoot整合Swagger2的示例

    這篇文章主要介紹了SpringBoot整合Swagger2的示例,幫助大家更好的理解和學(xué)習(xí)springboot框架,感興趣的朋友可以了解下
    2020-11-11
  • Java中break、continue、return語句的使用區(qū)別對比

    Java中break、continue、return語句的使用區(qū)別對比

    這篇文章主要介紹了Java中break、continue、return語句的使用區(qū)別對比,本文用非常清爽簡明的語言總結(jié)了這三個(gè)關(guān)鍵字的使用技巧,并用一個(gè)實(shí)例對比使用結(jié)果,需要的朋友可以參考下
    2015-06-06
  • springBoot中的properties配置解析

    springBoot中的properties配置解析

    這篇文章主要介紹了springBoot中的properties配置解析,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-03-03
  • Spring實(shí)現(xiàn)在非controller中獲取request對象

    Spring實(shí)現(xiàn)在非controller中獲取request對象

    這篇文章主要介紹了Spring實(shí)現(xiàn)在非controller中獲取request對象方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 使用Java和高德地圖API將經(jīng)緯度轉(zhuǎn)換為地理位置信息的步驟

    使用Java和高德地圖API將經(jīng)緯度轉(zhuǎn)換為地理位置信息的步驟

    這篇文章詳細(xì)介紹了如何將GPS坐標(biāo)轉(zhuǎn)換為人類可讀的地理位置,介紹了環(huán)境準(zhǔn)備、代碼實(shí)現(xiàn)、異常處理及優(yōu)化步驟,首先創(chuàng)建LocationFinder類,實(shí)現(xiàn)getLocationFromCoordinates方法,利用高德逆地理編碼API轉(zhuǎn)換坐標(biāo),文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-09-09
  • Springboot使用kafka的兩種方式

    Springboot使用kafka的兩種方式

    在公司用kafka比較多,今天整理下Springboot使用kafka的兩種方式,Kafka作為一個(gè)消息發(fā)布訂閱系統(tǒng),就包括消息生成者和消息消費(fèi)者,文中通過代碼示例介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下
    2023-11-11
  • servlet之web路徑問題_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    servlet之web路徑問題_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    這篇文章主要為大家詳細(xì)介紹了servlet之web路徑問題的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Java JDK 動(dòng)態(tài)代理的使用方法示例

    Java JDK 動(dòng)態(tài)代理的使用方法示例

    Java 動(dòng)態(tài)代理機(jī)制以巧妙的方式近乎完美地實(shí)踐了代理模式的設(shè)計(jì)理念。下面這篇文章主要給大家分享了關(guān)于Java JDK 動(dòng)態(tài)代理的使用方法示例,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-07-07
  • Spring Jpa多數(shù)據(jù)源工程配置過程解析

    Spring Jpa多數(shù)據(jù)源工程配置過程解析

    這篇文章主要介紹了Spring Jpa多數(shù)據(jù)源工程配置過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 解決springmvc項(xiàng)目中使用過濾器來解決請求方式為post時(shí)出現(xiàn)亂碼的問題

    解決springmvc項(xiàng)目中使用過濾器來解決請求方式為post時(shí)出現(xiàn)亂碼的問題

    這篇文章主要介紹了springmvc項(xiàng)目中使用過濾器來解決請求方式為post時(shí)出現(xiàn)亂碼的問題,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-08-08

最新評論

宾川县| 资兴市| 吐鲁番市| 巨野县| 雷波县| 连平县| 宜昌市| 淮阳县| 通许县| 丰镇市| 车致| 富宁县| 临朐县| 招远市| 屯留县| 新津县| 泗洪县| 孟村| 昭通市| 金湖县| 大姚县| 昭平县| 怀柔区| 威海市| 伊通| 洞头县| 新源县| 绵竹市| 龙胜| 临邑县| 陆良县| 达拉特旗| 潮安县| 祁连县| 珲春市| 眉山市| 花莲县| 盘山县| 文成县| 永康市| 开封市|