register costom message converter springboot
To register custom message converter when RestTemplate is used following code can be used
private void registerMessageConverter(RestTemplate restTemplate) {
List<HttpMessageConverter<?>> messageConverters = restTemplate.getMessageConverters();
for (int i = 0; i < messageConverters.size(); i++) {
HttpMessageConverter<?> messageConverter = messageConverters.get(i);
if ( messageConverter.getClass().equals(ResourceHttpMessageConverter.class) )
messageConverters.set(i, new ResourceHttpMessageConverterHandlingInputStreams());
}
}
public class ResourceHttpMessageConverterHandlingInputStreams extends ResourceHttpMessageConverter {
@Override
protected Long getContentLength(Resource resource, MediaType contentType) throws IOException {
Long contentLength = super.getContentLength(resource, contentType);
return contentLength == null || contentLength < 0 ? null : contentLength;
}
}