|
|
@ -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; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|