我将应用程序从基于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')
答案 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;
}
}
希望这有助于其他人