- 异常信息
- 降级配置
- 问题所在
java.lang.NullPointerException: null at liyue.springcloud.controller.OrderController.paymentInfo(OrderController.java:30) ~[classes/:na] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_301] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_301] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_301] at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_301] at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190) ~[spring-web-5.2.12.RELEASE.jar:5.2.12.RELEASE] at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138) ~[spring-web-5.2.12.RELEASE.jar:5.2.12.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105) ~[spring-webmvc-5.2.12.RELEASE.jar:5.2.12.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:878) ~[spring-webmvc-5.2.12.RELEASE.jar:5.2.12.RELEASE] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:792) ~[spring-webmvc-5.2.12.RELEASE.jar:5.2.12.RELEASE] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) ~[spring-webmvc-5.2.12.RELEASE.jar:5.2.12.RELEASE] at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040) ~[spring-webmvc-5.2.12.RELEASE.jar:5.2.12.RELEASE] at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943) ~[spring-webmvc-5.2.12.RELEASE.jar:5.2.12.RELEASE] at org.springframework.web.servlet.frameworkServlet.processRequest(frameworkServlet.java:1006) ~[spring-webmvc-5.2.12.RELEASE.jar:5.2.12.RELEASE] at org.springframework.web.servlet.frameworkServlet.doGet(frameworkServlet.java:898) ~[spring-webmvc-5.2.12.RELEASE.jar:5.2.12.RELEASE] at javax.servlet.http.HttpServlet.service(HttpServlet.java:626) ~[tomcat-embed-core-9.0.41.jar:4.0.FR]降级配置
feign:
hystrix:
enabled: true
@Service
@FeignClient(value = "CLOUD-PAYMENT-HYSTRIX-SERVICE",fallback = PaymentFeignFallbackService.class)
public interface PaymentFeignService {
@GetMapping("/payment/hystrix/info/{id}")
public Result paymentInfo(@PathVariable("id") Integer id);
@GetMapping("/payment/hystrix/timeout/info/{id}")
public Result paymentInfoTimeout(@PathVariable("id")Integer id);
}
@Service
public class PaymentFeignFallbackService implements PaymentFeignService {
@Override
public Result paymentInfo(Integer id) {
Result result = new Result();
result.ok(ErrorEnum.SUCCESS,"全局fallback");
return result;
}
@Override
public Result paymentInfoTimeout(Integer id) {
Result result = new Result();
result.ok(ErrorEnum.ERROR,"全局fallback");
return result;
}
}
麻了,按着尚硅谷的视频配置的,结果调用paymentInfo接口出现上面的异常。
问题所在
删掉@HystrixCommand即可。至于具体原因我也不是很清楚,估计是因为它也是进行服务降级的,而通过设置实现service的类的通配降级方式跟这种注解的方式冲突了。



