복붙노트

[SPRING] SpringTemplate 응답 유형에 적합한 HttpMessageConverter가 없습니다.

SPRING

SpringTemplate 응답 유형에 적합한 HttpMessageConverter가 없습니다.

스프링 휴식 템플릿을 사용하는 동안 다음과 같은 오류가 발생하지만 json 응답에 대한 잭슨을 정의했습니다.

뿐만 아니라 내가 휴식 클라이언트와 URL을 쿼리하면 좋은 응답을 얻을.

나머지 템플릿 구성 :

해결법

  1. ==============================

    1.MappingJackson2HttpMessageConverters의 기본 미디어 유형

    MappingJackson2HttpMessageConverters의 기본 미디어 유형

    /**
     * Construct a new {@code BindingJacksonHttpMessageConverter}.
     */
    public MappingJackson2HttpMessageConverter() {
        super(new MediaType("application", "json", DEFAULT_CHARSET));
    }
    

    Bean 정의에서 MappingJackson2HttpMessageConverter의 미디어 유형을 지정할 수 있습니다.

    @Bean
    public RestTemplate restTemplate() {
        RestTemplate restTemplate = new RestTemplate(httpRequestFactory());
        List<HttpMessageConverter<?>> converters = restTemplate.getMessageConverters();
        for (HttpMessageConverter<?> converter : converters) {
            if (converter instanceof MappingJackson2HttpMessageConverter) {
                MappingJackson2HttpMessageConverter jsonConverter = (MappingJackson2HttpMessageConverter) converter;
                jsonConverter.setObjectMapper(new ObjectMapper());
                jsonConverter.setSupportedMediaTypes(ImmutableList.of(new MediaType("application", "json", MappingJackson2HttpMessageConverter.DEFAULT_CHARSET), new MediaType("text", "javascript", MappingJackson2HttpMessageConverter.DEFAULT_CHARSET)));
            }
        }
        return restTemplate;
    }
    

    또는 와일드 카드 사용

    jsonConverter.setSupportedMediaTypes(ImmutableList.of(new MediaType("*", "json", MappingJackson2HttpMessageConverter.DEFAULT_CHARSET), new MediaType("*", "javascript", MappingJackson2HttpMessageConverter.DEFAULT_CHARSET)));
    
  2. from https://stackoverflow.com/questions/28131139/springtemplate-no-suitable-httpmessageconverter-found-for-response-type by cc-by-sa and MIT license