[Spring Cloud] ZuulFallbackProvider cannot be resolved to a type

问题:ZuulFallbackProvider cannot be resolved to a type

解决:使用FallbackProvider替代ZuulFallbackProvider,

同时,要实现的接口fallbackResponse()变成带参数的,如下:

@Component
public class MyFallbackProvider implements FallbackProvider {
    

    @Override
    public String getRoute() {
        //Howard 2019-02-26
        return "*";//all route services have hystrix
        //return "hi-service";
    }
    
    @Override
    public ClientHttpResponse fallbackResponse(String route, Throwable cause) {
        
        return new ClientHttpResponse() {

            @Override
            public InputStream getBody() throws IOException {
                return new ByteArrayInputStream("oooops!error,i'm the fallback.".getBytes());
            }

            @Override
            public HttpHeaders getHeaders() {
                HttpHeaders headers = new HttpHeaders();
                headers.setContentType( MediaType.APPLICATION_JSON );
                return headers;
            }

            @Override
            public HttpStatus getStatusCode() throws IOException {
                return HttpStatus.OK;
            }

            @Override
            public int getRawStatusCode() throws IOException {
                return 200;
            }

            @Override
            public String getStatusText() throws IOException {
                return "OK";
            }

            @Override
            public void close() {
                // TODO Auto-generated method stub
            }
        };
    }
}
 

参考:https://spring.io/blog/2018/06/19/spring-cloud-finchley-release-is-available

  • ZuulFallbackProvider has been removed and replaced with FallbackProvider

猜你喜欢

转载自blog.csdn.net/H_O_W_E/article/details/87929508