FeignClient调试404 feign FeignException status 404 reading

                       

先说一下源码
调用Feign服务的时候 执行的核心代码如下

package feign;.......//省略import/** * Submits HTTP {@link Request requests}. Implementations are expected to be thread-safe. */public interface Client {  /**   * Executes a request against its {@link Request#url() url} and returns a response.   *   * @param request safe to replay.   * @param options options to apply to this request.   * @return connected response, {@link Response.Body} is absent or unread.   * @throws IOException on a network error connecting to {@link Request#url()}.   */  Response execute(Request request, Options options) throws IOException;  public static class Default implements Client {    private final SSLSocketFactory sslContextFactory;    private final HostnameVerifier hostnameVerifier;    /**     * Null parameters imply platform defaults.     */    public Default(SSLSocketFactory sslContextFactory, HostnameVerifier hostnameVerifier) {      this.sslContextFactory = sslContextFactory;      this.hostnameVerifier = hostnameVerifier;    }    @Override    public Response execute(Request request, Options options) throws IOException {      HttpURLConnection connection = convertAndSend(request, options);      return convertResponse(connection).toBuilder().request(request).build();    }
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36

feign.client.Default#excute 方法会记录请求的信息。
到查理debug看看发出去的请求 能不能访问


feign:   hystrix:    enabled: true
   
   
  • 1
  • 2
  • 3

如果断融器打开 会报错如下

2018-02-03 19:29:23.891 DEBUG [http-nio-9091-exec-7] [hio-portal] o.s.w.s.m.m.a.RequestResponseBodyMethodProcessor - Read [class java.lang.String] as "application/json;charset=UTF-8" with [org.springframework.http.converter.StringHttpMessageConverter@17361894]com.netflix.hystrix.exception.HystrixRuntimeException: SysFeignService#queryListForQuickEntry(Map) timed-out and no fallback available.    at com.netflix.hystrix.AbstractCommand$22.call(AbstractCommand.java:805)    at com.netflix.hystrix.AbstractCommand$22.call(AbstractCommand.java:790)    at rx.internal.operators.OperatorOnErrorResumeNextViaFunction$4.onError(OperatorOnErrorResumeNextViaFunction.java:140)    at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onError(OnSubscribeDoOnEach.java:87)    at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onError(OnSubscribeDoOnEach.java:87)    at com.netflix.hystrix.AbstractCommand$DeprecatedOnFallbackHookApplication$1.onError(AbstractCommand.java:1451)    at com.netflix.hystrix.AbstractCommand$FallbackHookApplication$1.onError(AbstractCommand.java:1376)    at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onError(OnSubscribeDoOnEach.java:87)    at rx.observers.Subscribers$5.onError(Subscribers.java:230)    at rx.internal.operators.OnSubscribeThrow.call(OnSubscribeThrow.java:44)    at rx.internal.operators.OnSubscribeThrow.call(OnSubscribeThrow.java:28)    at rx.Observable.unsafeSubscribe(Observable.java:10211)    at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:51)    at rx.internal.operators.OnSubscribeDefer.call(OnSubscribeDefer.java:35)    at rx.Observable.unsafeSubscribe(Observable.java:10211)    at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:41)    at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:30)    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)    at rx.Observable.unsafeSubscribe(Observable.java:10211)    at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:41)    at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:30)    at rx.Observable.unsafeSubscribe(Observable.java:10211)    at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:41)    at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:30)    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)    at rx.Observable.unsafeSubscribe(Observable.java:10211)    at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:41)    at rx.internal.operators.OnSubscribeDoOnEach.call(OnSubscribeDoOnEach.java:30)    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:48)    at rx.internal.operators.OnSubscribeLift.call(OnSubscribeLift.java:30)    at rx.Observable.unsafeSubscribe(Observable.java:10211)    at rx.internal.operators.OperatorOnErrorResumeNextViaFunction$4.onError(OperatorOnErrorResumeNextViaFunction.java:142)    at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onError(OnSubscribeDoOnEach.java:87)    at rx.internal.operators.OnSubscribeDoOnEach$DoOnEachSubscriber.onError(OnSubscribeDoOnEach.java:87)    at com.netflix.hystrix.AbstractCommand$HystrixObservableTimeoutOperator$1.run(AbstractCommand.java:1121)    at com.netflix.hystrix.strategy.concurrency.HystrixContextRunnable$1.call(HystrixContextRunnable.java:41)    at com.netflix.hystrix.strategy.concurrency.HystrixContextRunnable$1.call(HystrixContextRunnable.java:37)    at org.springframework.cloud.sleuth.instrument.hystrix.SleuthHystrixConcurrencyStrategy$HystrixTraceCallable.call(SleuthHystrixConcurrencyStrategy.java:154)    at com.netflix.hystrix.strategy.concurrency.HystrixContextRunnable.run(HystrixContextRunnable.java:57)    at com.netflix.hystrix.AbstractCommand$HystrixObservableTimeoutOperator$2.tick(AbstractCommand.java:1138)    at com.netflix.hystrix.util.HystrixTimer$1.run(HystrixTimer.java:99)    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)    at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)    at java.lang.Thread.run(Thread.java:748)Caused by: java.util.concurrent.TimeoutException    at com.netflix.hystrix.AbstractCommand.handleTimeoutViaFallback(AbstractCommand.java:980)    at com.netflix.hystrix.AbstractCommand.access$500(AbstractCommand.java:59)    at com.netflix.hystrix.AbstractCommand$12.call(AbstractCommand.java:595)    at com.netflix.hystrix.AbstractCommand$12.call(AbstractCommand.java:587)    at rx.internal.operators.OperatorOnErrorResumeNextViaFunction$4.onError(OperatorOnErrorResumeNextViaFunction.java:140)    ... 16 more
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61

关闭以后报错如下

feign.FeignException: status 404 reading xxxxService#xxxxx(Map)    at feign.FeignException.errorStatus(FeignException.java:62)    at feign.codec.ErrorDecoder$Default.decode(ErrorDecoder.java:91)    at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:138)    at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:76)    at feign.ReflectiveFeign$FeignInvocationHandler.invoke(ReflectiveFeign.java:103)    at com.sun.proxy.$Proxy208.queryListForQuickEntry(Unknown Source)    at com.xxx.oa.sys.quick.controller.EntryController.queryPortalList(EntryController.java:188)    at sun.reflect.GeneratedMethodAccessor502.invoke(Unknown Source)    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java)    at java.lang.reflect.Method.invoke(Method.java:498)    at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:114)    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:827)    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:738)    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:963)    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:897)    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:872)    at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
   
   
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
           

猜你喜欢

转载自blog.csdn.net/qq_44894359/article/details/89417577