Could not extract response: no suitable HttpMessageConverter found for response type [class com.XXX] and content type [text/plain]
1. 报错
feign.codec.DecodeException: Could not extract response: no suitable HttpMessageConverter found for response type [class com.XXX] and content type [text/plain]
at feign.SynchronousMethodHandler.decode(SynchronousMethodHandler.java:169)
at feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:133)
at feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:76)
at feign.ReflectiveFeign$FeignInvocationHandler.invoke(ReflectiveFeign.java:103)``
2、解决方案
2.1
public class ExtMappingJackson2HttpMessageConverter extends MappingJackson2HttpMessageConverter {
/*解决no suitable HttpMessageConverter found for response type [class com.XXX] and content type [text/plain]*/
public ExtMappingJackson2HttpMessageConverter(){
List<MediaType> mediaTypes = new ArrayList<>();
mediaTypes.add(MediaType.TEXT_PLAIN);
setSupportedMediaTypes(mediaTypes);// tag6
}
}
2.2
@Configuration
public class ConfigBean
{
@Bean
public Decoder feignDecoder() {
return new ResponseEntityDecoder(new SpringDecoder(feignHttpMessageConverter()));
}
public ObjectFactory<HttpMessageConverters> feignHttpMessageConverter() {
final HttpMessageConverters httpMessageConverters = new HttpMessageConverters(new ExtMappingJackson2HttpMessageConverter());
return new ObjectFactory<HttpMessageConverters>() {
@Override
public HttpMessageConverters getObject() throws BeansException {
return httpMessageConverters;
}
};
}
@Bean
RestTemplate restTemplate(){
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new ExtMappingJackson2HttpMessageConverter());
return restTemplate;
}
}