MappingJackson2HttpMessageConverter从xml到java配置故障

时间:2017-12-14 20:18:13

标签: java jackson resttemplate

我将应用程序从基于xml的配置更改为基于java的配置。在基于java的配置中,我得到以下错误,我没有在基于xml的配置中获得。我在java配置中缺少什么?请协助。

抛出此错误的方法:

 response = restTemplate.exchange(uri.toUri(), HttpMethod.GET, entity, UserProfiles.class);

错误:

nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not construct instance of com.mycompany.wsg.profile.model.v26.gen.ListItemDef: no String-argument constructor/factory method to deserialize from String value ('U-71155f93-8413-457c-a045-256dc6ab0a93@poims001.ucc2.ucc.stgsip.t-mobile.com')

1 个答案:

答案 0 :(得分:0)

问题绝对是java配置。以下是我如何解决它:

public class SpringWebConfig extends WebMvcConfigurationSupport {

  ....//unrelated configuration here

 @Bean
    public RestTemplate restTemplate()
    {
        RestTemplate restTemplate =  new RestTemplate(httpClientFactory());

        restTemplate.setMessageConverters(getMessageConverters());

        return restTemplate;
    }


 @Override
    public void configureMessageConverters(
      List<HttpMessageConverter<?>> converters) {

        converters.add(createXmlHttpMessageConverter());
        converters.add(new MappingJackson2HttpMessageConverter());

        super.configureMessageConverters(converters);
    }

    private HttpMessageConverter<Object> createXmlHttpMessageConverter() {
        MarshallingHttpMessageConverter xmlConverter = 
          new MarshallingHttpMessageConverter(jaxb2Marshaller(), jaxb2Marshaller());

        return xmlConverter;
    }
}

希望这有助于其他人