Cannot deserialize instance of java.lang.String out of START_ARRAY/START_OBJECT 토 큰,RestTemplate 작은 구덩이

2097 단어 RestTempla
최근 에 프로젝트 를 쓸 때 RestTemplate 를 사용 하 는 데 문제 가 생 겼 습 니 다.컨버터 를 사용자 정의 한 후에 restTemplate 를 사용 하여 요청 을 보 내 고 문자열 을 바 꾸 어"Cannot deserialize instance of java.lang.String out of STARTARRAY/START_OBJECT token"오류.소스 코드 를 간단하게 살 펴 본 결과 컨버터 순서 문제 때 문 이라는 것 을 알 게 되 었 습 니 다.여기에 적어 서 같은 문제 에 부 딪 힌 원숭이 들 에 게 도움 이 되 기 를 바 랍 니 다.자세 한 내용 은 아래 코드 를 보십시오.
@Bean
public RestTemplate restTemplate() {
    RestTemplate restTemplate = new RestTemplate(simpleClientHttpRequestFactory());
    List> converters = new ArrayList<>();
    //             Can not deserialize instance of java.lang.String out of START_ARRAY token
    //Could not read document: Can not deserialize instance of java.lang.String out of START_OBJECT token
    //    mediaType            
    //            MediaType    restTemplate doWithRequest()        canRead()/canWrite() 
// 
    converters.add(new ByteArrayHttpMessageConverter());
    converters.add(new StringHttpMessageConverter(Charset.forName("UTF-8")));
    converters.add(new ResourceHttpMessageConverter());
    converters.add(new SourceHttpMessageConverter<>());
    converters.add(new AllEncompassingFormHttpMessageConverter());
    converters.add(new MappingJackson2XmlHttpMessageConverter());
    converters.add(new MappingJackson2HttpMessageConverter());
    restTemplate.setMessageConverters(converters);
    return restTemplate;
}

좋은 웹페이지 즐겨찾기