问题: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 withFallbackProvider