ErrorDecoder
偽の例外をデコードするために実装しようとすると、ストリームresponse.body()
が閉じていることがわかったので、ストリームを読み込んで文字列に変換しようとすると、スローされjava.io.IOException: stream is closed
ます。デコーダーの前に、ストリームアドバンスを閉じるために何もしなかったので、本当に混乱しています。
public class FeignClientErrorDecoder implements ErrorDecoder {
@Override
public Exception decode(String methodKey, Response response) {
log.info("feign client response: {}", response);
String body = null;
try {
body = Util.toString(response.body().asReader(Charset.defaultCharset()));
} catch (IOException e) {
log.error("feign.IOException", e);
}
return new ServiceException(MessageCode.builder(ExceptionCodeEnum.ERROR));
}
}