}productservice省略
feignservice
value就是nacos註冊的名字
@feignclient
(value =
"netsadcloud-pms"
)public
inte***ce
feignservice
controller
/**
* @author: boss
* date: 2020/12/31
* time: 8:50
* description:
*/@api
(tags =
)@slf4j
@restcontroller
("/order"
)public
class
ordercontroller
", json.
tojsonstring
(productid));
trycatch
(exception e)
",e.
getmessage()
);}throw
newmyexception
(errorcode.feign_error);}
}
1.debug的時候feign超時
feign呼叫時讀取超時(read timed out executing get)解決
解決方式(很多人比較關注,所以放在最前面):
因為feign呼叫預設的超時時間為一分鐘,一分鐘介面不能返回就會丟擲異常,所以在服務端的yml檔案中增加如下配置即可解決:
feign:
client:
config:
default
: connecttimeout:
10000
readtimeout:
600000
2.返回物件沒有無參建構函式
feign.codec.decodeexception: type definition error: [****** type, class com.freegift.utilspringbootstarter.model.vo.responsevo]; nested exception is com.fasterxml.jackson.databind.exc.invaliddefinitionexception: cannot construct instance ofcom.freegift.utilspringbootstarter.model.vo.responsevo
(no creators, like default constructor, exist): cannot deserialize from object value (no delegate- or property-based creator)
at [source: (pushbackinputstream); line: 1, column: 2]
原因:json反序列化話需要對應實體類有無參構造器。
responsevo加入無參建構函式
返回值jackson序列化注意點:
被 序列化/反序列化 的實體
a. 必須要有無參構造方法
b.欄位要有set/get方法
c. 不需要序列化的字段 可以用@jsonignore 修飾
3.關於feignclient呼叫get方法,無法傳遞引數的解決辦法
feignclient 在進行遠端呼叫的時候,get方法在接受的時候會將引數放入requestbody中,將方法轉為了post請求,這樣服務端就無法獲取請求引數,導致請求出錯,所以我們在傳遞自定義引數的時候,需要將每個屬性拆解出來加上@requestparam 註解,這樣的話就可以正常請求了,而且我們沒必要將每乙個屬性都寫入,只需要將我們所需要的引數加上即可
springboot配置 整合nacos
nacos倉庫 nacos介紹文件 nacos使用例子 springboot nacos consumer springboot nacos 匯入nacos mysql.sql 啟動nacos 控制台 1 配置發布2種方式 呼叫openapi 控制台操作 2 新建命名空間 3 不同namespace...
Nacos整合Dubbo服務
windows系統下啟動nacos 解壓開windows的zip包之後,在bin目錄下找到startup.cmd指令碼雙擊啟動。startup.sh是linux系統下的啟動指令碼。啟動完成之後,可以通過訪問localhost 8848 預設使用者名稱 密碼 nacos nacos 進如nacos的控...
springcloud整合nacos配置中心
一 新增依賴 com.alibaba.cloud groupid spring cloud starter alibaba nacos config artifactid version dependency 建立bootstrap.yml配置檔案,並設定註冊中心位址,如果nacos也作為註冊中心的...