UcenterClient#getUserInfoOrder(String) failed and no fallback available.解決過程
報錯內容:
com.netflix.hystrix.exception.HystrixRuntimeException: UcenterClient#getUserInfoOrder(String) failed and no fallback available.
at com.netflix.hystrix.AbstractCommand$22.call(AbstractCommand.java:822)
at com.netflix.hystrix.AbstractCommand$22.call(AbstractCommand.java:807)
at rx.internal.operators.OperatorOnErrorResumeNextViaFunction\(4.onError(OperatorOnErrorResumeNextViaFunction.java:140) at rx.internal.operators.OnSubscribeDoOnEach\)DoOnEachSubscriber.onError(OnSubscribeDoOnEach.java:87)
\(Caused by: feign.FeignExceptionNotFound: status 404 reading EduClient#getCourseInfoOrder(String) at feign.FeignException.clientErrorStatus(FeignException.java:165) at feign.FeignException.errorStatus(FeignException.java:141) at feign.FeignException.errorStatus(FeignException.java:133) at feign.codec.ErrorDecoderDefault.decode(ErrorDecoder.java:92)\)
報錯界面:
報錯原因:
看報錯部分,后面的Caused by: feign.FeignExceptionNotFound大概意思是某個東西沒找到,那么可能有以下幾種情形:
1.配置文件中部分信息沒掃描到
2.遠程調用模塊時,注解什么的有問題,沒找到要調用的模塊
3.地址有問題,例如Controller上的path,以及方法上的path,按照這個思路去找
解決流程:
一、檢查client部分:
@Component
@FeignClient("service-edu")
public interface EduClient {
//根據課程id查詢課程信息
@PostMapping("/eduservice/coursefront/getCourseInfoOrder/{id}")
public CourseWebVoOrder getCourseInfoOrder(@PathVariable("id") String id);
}
檢查被調用module的配置文件,主要檢查spring.application.name是否一致:
二、檢查Controller上面的path以及Method上面的Path
可以中間設置斷點,或者加一些打印語句,判斷進入情況.