客戶端A 服務端B,C
A 一個controller 使用Resource注解注入 B,C的feign介面,
呼叫B然后呼叫C,B失效,任何呼叫都報404,請問是什么原因呢?
uj5u.com熱心網友回復:
有可能是介面地址的問題uj5u.com熱心網友回復:
并不是,第一次請求,成功調完B,呼叫C也是成功的,但是下次進來,呼叫B就報404了,直接運行呼叫C的代碼是成功的uj5u.com熱心網友回復:
能貼一下B、C介面的代碼么,還有feignclient代碼uj5u.com熱心網友回復:
@Resourceprivate ApiDocumentFeign apiDocumentFeign;
@Resource
private ApiUserFeign apiUserFeign;
/**
* 第一次正常呼叫
*/
@PostMapping(value=https://bbs.csdn.net/topics/ Urls.DocumentGroup.QUERY_LIST)
public Result queryList(@RequestBody QueryReq req){
// 第一次呼叫 成功
List res = apiDocumentFeign.queryList();
// 第一次呼叫 成功
USer userInfo = apiUserFeign.query();
}
/**
* 第二次失敗報404
* @param req
* @return
*/
@PostMapping(value=https://bbs.csdn.net/topics/ Urls.DocumentGroup.QUERY_LIST)
public Result queryList(@RequestBody QueryReq req){
// 第二次次呼叫 失敗
List res = apiDocumentFeign.queryList();
//
USer userInfo = apiUserFeign.query();
}
/**
* 調順序后 成功一個
*/
@PostMapping(value=https://bbs.csdn.net/topics/ Urls.DocumentGroup.QUERY_LIST)
public Result queryList(@RequestBody QueryReq req){
//第二次次呼叫 成功
USer userInfo = apiUserFeign.query();
// 第二次次呼叫 失敗
List res = apiDocumentFeign.queryList();
}
uj5u.com熱心網友回復:
單獨使用都是沒問題的放到一個controller就有問題uj5u.com熱心網友回復:
是不是你feign介面里配置的RequestMapping和對應的feign controller配置的RequestMapping不一樣?具體你可以看一下這里https://blog.csdn.net/qq_31404603/article/details/88421363
uj5u.com熱心網友回復:
這個是單服務呼叫和我的問題不一樣uj5u.com熱心網友回復:
你的意思是第一次請求B,C都成功,第二次B失效,C還是成功,你這里指的第一次,是服務重新啟動之后嗎,就是第一次你都能得到介面回應的資料,但是第二次你得到的回應結果就是404,這種你可以斷點看一下,第一次request資料和第二次失效后的request資料,然后判斷是不是在執行完C之后影響了B,或者你可以只執行B暫時不執行C,B是否會失效,這種問題,除非有遇到過的人,不然你只能一步步排查uj5u.com熱心網友回復:
emmmmm,這個不是代碼的問題,應該是feign呼叫機制的問題,之前看到有人問過但是沒人回答,就是一個消費端只有正常執行一個服務端feignuj5u.com熱心網友回復:
我也碰到這個問題了,我是自己重寫了rule,你后來解決了么?uj5u.com熱心網友回復:
看看B介面會不會在某種情況下事務回滾失敗,導致整個服務鏈都錯了轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/12775.html
標籤:Web 開發
