记一次feign拦截器报错404NOT FOUND问题排查

因为链路追踪需要将前端请求中的header参数统一转发至下游服务。
对下游服务http接口的调用我使用的是feign,因此我采用了统一加拦截器配置的做法,写了一个拦截器。具体见feign拦截器
但同时我也需要将请求的参数打印出来,这里牵扯到另一个问题,post的body参数是从流里边取出的,但是这个流只能取一次,所以我又重写了一个方法,来复制流中的数据。 取出body参数
这时候出现了诡异的事情,本地运行完全没问题,一上测试就出问题。容器里边的报错信息是404 NOT FOUND,这个第一想法是路径有问题,可是本地调用完全没问题,所以排除了。最初以为是复制流的时候和feign拦截器冲突了,经过排查发现不是。继续定位,发现dev和test调下游服务接口时候一个是用的ip一个是用的域名,如果改成ip就没问题,这时候算是初步定位到问题。
继续尝试,如果再拦截器复制header参数的时候,加一步过滤,不把所有参数都复制,就可以成功。继续分析是哪个参数影响了接口调用,最后定位到是host这个参数。
因为下游服务的域名是要走公司的ng的,ng会将你的域名解析成对应ip然后打到具体的服务上,如果请求的host和header的host不一致是会报错的。但是如果你直接ip调用是打到机器上不走ng的,所以不会报错。至此,历时一天的排查定位终于解决了问题。。。
nignx和host
附上404报错信息:

2022-02-28 21:01:54.265 ERROR [http-nio-8020-exec-1] com.mp.appletbackend.advice.ExceptionAdvice - URL:/view/v2/list error status:500 org.springframework.web.server.ResponseStatusException: 404 NOT_FOUND "feign.httpclient.ApacheHttpClient$1@38ea845b"        at com.mp.appletbackend.config.FeignErrorDecoder.decode(FeignErrorDecoder.java:31)                  
at feign.AsyncResponseHandler.handleResponse(AsyncResponseHandler.java:96)                  at eign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:138)                       at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:89)                 at feign.ReflectiveFeign$FeignInvocationHandler.invoke(ReflectiveFeign.java:100)                 at com.sun.proxy.$Proxy173.getViewList(Unknown Source)                      at com.mp.appletbackend.service.impl.ViewServiceV2Impl.getViewList(ViewServiceV2Impl.java:68)                  at com.mp.appletbackend.service.impl.ViewServiceV2Impl$$FastClassBySpringCGLIB$$a587babe.invoke(<generated>)                   at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)                     at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771)                    
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)                        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)                    at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:88)                 at com.mp.appletbackend.aop.LogTimeAop.logTime(LogTimeAop.java:33)                     at com.mp.appletbackend.aop.LogTimeAop.logHandlerTime(LogTimeAop.java:26)                      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)                  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)                    
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)                    at java.lang.reflect.Method.invoke(Method.java:498)        at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)            at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)                      
at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)                  at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)                        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)                    at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:95)                      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)                        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)                    
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:691)                      at com.mp.appletbackend.service.impl.ViewServiceV2Impl$$EnhancerBySpringCGLIB$$540b19fe.getViewList(<generated>)                       at com.mp.appletbackend.controller.ViewV2Controller.getViewList$original$FPDtjpNq(ViewV2Controller.java:68)                    at com.mp.appletbackend.controller.ViewV2Controller.getViewList$original$FPDtjpNq$accessor$ZpF8TcFL(ViewV2Controller.java)                     at com.mp.appletbackend.controller.ViewV2Controller$auxiliary$uATw2eD7.call(Unknown Source)                    at org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.InstMethodsInter.intercept(InstMethodsInter.java:86)                     at com.mp.appletbackend.controller.ViewV2Controller.getViewList(ViewV2Controller.java)                 
at com.mp.appletbackend.controller.ViewV2Controller$$FastClassBySpringCGLIB$$bd24fb68.invoke(<generated>)                      at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)                 at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771)                    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)                        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)                    at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:88)                 
at com.mp.appletbackend.aop.LogTimeAop.logTime(LogTimeAop.java:33)                 at com.mp.appletbackend.aop.LogTimeAop.logControllerTime(LogTimeAop.java:21)                   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)                      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)                 at java.lang.reflect.Method.invoke(Method.java:498)                 at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)                    at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)                 
at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)                     at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)                    
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:95)                      at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)                        at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)                    
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:691)                      at com.mp.appletbackend.controller.ViewV2Controller$$EnhancerBySpringCGLIB$$ac73963c.getViewList(<generated>)                  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)                      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)                    
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)           at java.lang.reflect.Method.invoke(Method.java:498)                      at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)                  at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)                  at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105)                      
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:878)                    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:792)                     at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)                     at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)       at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)                       
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)                      at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)                        at javax.servlet.http.HttpServlet.service(HttpServlet.java:626)                     at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)                  at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)                     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)                        
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)                        at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)  at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)                     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)                        at com.mp.appletbackend.filter.RequestFilter.doFilter(RequestFilter.java:27)                   
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)                        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)                        at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)                      at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)                      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)       
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)                     at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)                     at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)                      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)                       
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)                        at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:93)                   at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)                      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)                        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)                    
at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)                      at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)                        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)                        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)                      at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)                       at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)  
at org.apache.catalina.core.StandardHostValve.invoke$original$bmW4sudf(StandardHostValve.java:143)                       at org.apache.catalina.core.StandardHostValve.invoke$original$bmW4sudf$accessor$l1IqjWmt(StandardHostValve.java)                    at org.apache.catalina.core.StandardHostValve$auxiliary$9Zxe1Hjx.call(Unknown Source)                       at org.apache.skywalking.apm.agent.core.plugin.interceptor.enhance.InstMethodsInter.intercept(InstMethodsInter.java:86)                     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java)                        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)                     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)        
at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:747)                       at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)                      at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)                       at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)                at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)                       at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)                      
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)                  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)                  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)                      at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)                       at java.lang.Thread.run(Thread.java:748)

本地调试报错信息和在domeOs容器的报错信息不同,见下:

2022-03-01 11:47:15.550 ERROR [http-nio-8020-exec-1] com.mp.appletbackend.advice.ExceptionAdvice - URL:/view/v2/list error status:500 feign.FeignException: Unrecognized token 'ok': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')		 at [Source: (BufferedReader); line: 1, column: 3] reading GET 
			at feign.FeignException.errorReading(FeignException.java:151)
			at feign.AsyncResponseHandler.handleResponse(AsyncResponseHandler.java:102)
			at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:138)
			at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:89)
			at feign.ReflectiveFeign$FeignInvocationHandler.invoke(ReflectiveFeign.java:100)
			at com.sun.proxy.$Proxy188.getViewList(Unknown Source)
			at com.mp.appletbackend.service.impl.ViewServiceV2Impl.getViewList(ViewServiceV2Impl.java:67)
			at com.mp.appletbackend.service.impl.ViewServiceV2Impl$$FastClassBySpringCGLIB$$a587babe.invoke(<generated>)
			at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
			at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771)
			at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
			at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)
			at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:88)
			at com.mp.appletbackend.aop.LogTimeAop.logTime(LogTimeAop.java:33)
			at com.mp.appletbackend.aop.LogTimeAop.logHandlerTime(LogTimeAop.java:26)
			at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
			at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
			at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
			at java.lang.reflect.Method.invoke(Method.java:498)
			at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)
			at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)
			at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)
			at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
			at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)
			at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:95)
			at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
			at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)
			at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:691)
			at com.mp.appletbackend.service.impl.ViewServiceV2Impl$$EnhancerBySpringCGLIB$$7c95d12d.getViewList(<generated>)
			at com.mp.appletbackend.controller.ViewV2Controller.getViewList(ViewV2Controller.java:68)
			at com.mp.appletbackend.controller.ViewV2Controller$$FastClassBySpringCGLIB$$bd24fb68.invoke(<generated>)
			at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
			at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771)
			at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
			at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)
			at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:88)
			at com.mp.appletbackend.aop.LogTimeAop.logTime(LogTimeAop.java:33)
			at com.mp.appletbackend.aop.LogTimeAop.logControllerTime(LogTimeAop.java:21)
			at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
			at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
			at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
			at java.lang.reflect.Method.invoke(Method.java:498)
			at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:644)
			at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:633)
			at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)
			at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
			at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)
			at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:95)
			at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
			at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)
			at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:691)
			at com.mp.appletbackend.controller.ViewV2Controller$$EnhancerBySpringCGLIB$$d4fe4d6b.getViewList(<generated>)
			at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
			at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
			at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
			at java.lang.reflect.Method.invoke(Method.java:498)
			at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)
			at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
			at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105)
			at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:878)
			at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:792)
			at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
			at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)
			at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)
			at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
			at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)
			at javax.servlet.http.HttpServlet.service(HttpServlet.java:626)
			at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
			at javax.servlet.http.HttpServlet.service(HttpServlet.java:733)
			at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
			at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
			at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
			at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
			at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
			at com.mp.appletbackend.filter.RequestFilter.doFilter(RequestFilter.java:27)
			at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
			at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
			at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)
			at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
			at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
			at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
			at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)
			at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
			at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
			at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
			at org.springframework.boot.actuate.metrics.web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:93)
			at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
			at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
			at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
			at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)
			at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)
			at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
			at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
			at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
			at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
			at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
			at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)
			at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
			at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
			at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
			at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)
			at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
			at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
			at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)
			at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
			at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
			at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
			at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
			at java.lang.Thread.run(Thread.java:748)
		Caused by: com.fasterxml.jackson.core.JsonParseException: Unrecognized token 'ok': was expecting (JSON String, Number, Array, Object or token 'null', 'true' or 'false')		 at [Source: (BufferedReader); line: 1, column: 3]
			at com.fasterxml.jackson.core.JsonParser._constructError(JsonParser.java:1851)
			at com.fasterxml.jackson.core.base.ParserMinimalBase._reportError(ParserMinimalBase.java:717)
			at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._reportInvalidToken(ReaderBasedJsonParser.java:2898)
			at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._handleOddValue(ReaderBasedJsonParser.java:1944)
			at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:776)
			at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:4662)
			at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4511)
			at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3495)
			at feign.jackson.JacksonDecoder.decode(JacksonDecoder.java:61)
			at feign.AsyncResponseHandler.decode(AsyncResponseHandler.java:115)
			at feign.AsyncResponseHandler.handleResponse(AsyncResponseHandler.java:87)
			... 107 common frames omitted

也是本地调试的这个错误信息启发了我。。。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值