master
Rossen Stoyanchev 8 years ago
parent 2263954ad7
commit 318b15c321
  1. 14
      spring-web-reactive/src/main/java/org/springframework/web/reactive/result/method/annotation/ResponseBodyResultHandler.java

@ -182,12 +182,13 @@ public class ResponseBodyResultHandler implements HandlerResultHandler, Ordered
MediaType bestMediaType = selectBestMediaType(compatibleMediaTypes); MediaType bestMediaType = selectBestMediaType(compatibleMediaTypes);
if (bestMediaType != null) { if (bestMediaType != null) {
HttpMessageConverter<?> converter = resolveEncoder(elementType, bestMediaType); for (HttpMessageConverter<?> converter : this.messageConverters) {
if (converter != null) { if (converter.canWrite(elementType, bestMediaType)) {
ServerHttpResponse response = exchange.getResponse(); ServerHttpResponse response = exchange.getResponse();
return converter.write((Publisher) publisher, elementType, bestMediaType, response); return converter.write((Publisher) publisher, elementType, bestMediaType, response);
} }
} }
}
return Mono.error(new NotAcceptableStatusException(this.supportedMediaTypes)); return Mono.error(new NotAcceptableStatusException(this.supportedMediaTypes));
} }
@ -249,13 +250,4 @@ public class ResponseBodyResultHandler implements HandlerResultHandler, Ordered
return null; return null;
} }
private HttpMessageConverter<?> resolveEncoder(ResolvableType type, MediaType mediaType) {
for (HttpMessageConverter<?> converter : this.messageConverters) {
if (converter.canWrite(type, mediaType)) {
return converter;
}
}
return null;
}
} }

Loading…
Cancel
Save