I have some fiegn client to send request other micro service.
@FeignClient(name=\"userservice\")
public interface UserClient {
@RequestMapping(
did you try to implement FallbackFactory on your feign client ?
https://cloud.spring.io/spring-cloud-netflix/multi/multi_spring-cloud-feign.html#spring-cloud-feign-hystrix-fallback
On the create method, before return, you can retrieve the http status code with this snippet :
String httpStatus = cause instanceof FeignException ? Integer.toString(((FeignException) cause).status()) : "";
Exemple :
@FeignClient(name="userservice", fallbackFactory = UserClientFallbackFactory.class)
public interface UserClient {
@RequestMapping(
method= RequestMethod.GET,
path = "/userlist")
String getUserByid(@RequestParam(value ="id") String id);
}
@Component
static class UserClientFallbackFactory implements FallbackFactory {
@Override
public UserClient create(Throwable cause) {
String httpStatus = cause instanceof FeignException ? Integer.toString(((FeignException) cause).status()) : "";
return new UserClient() {
@Override
public String getUserByid() {
logger.error(httpStatus);
// what you want to answer back (logger, exception catch by a ControllerAdvice, etc)
}
};
}
}