Я получаю следующее исключение, когда пытаюсь получить User из моей веб-службы. org.springframework.web.client.RestClientException: не удалось извлечь ответ: не найдено подходящего HttpMessageConverter для типа ответа [класс com.shopping.model.User] и типа содержимого [текст/html; charset = ISO-8859-1]org.springframework.web.client.RestClientException
классМой Пользователь помечается @XmlRootElement
код клиента:
RestTemplate rt = new RestTemplate();
rt.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
User x = rt.getForObject("http://localhost:8080/Online_Shopping/dispatcher/rest/hello",User.class);
код Web Service:
@Controller
@RequestMapping(value = "/rest")
public class RESTController {
@RequestMapping(value = "/hello",
method = RequestMethod.GET,
produces = MediaType.APPLICATION_XML_VALUE)
public ResponseEntity<User> getUser() {
User x = new User("paymon","123",true);
HttpHeaders responseHeaders = new HttpHeaders();
responseHeaders.setContentType(MediaType.APPLICATION_XML);
return new ResponseEntity<User>(x, responseHeaders, HttpStatus.CREATED);
}
Кажется, что ваш клиент получает HTML ответ от API. Можете ли вы назвать свой api напрямую из браузера? Получаете ли вы контент xml или html? Вы можете попробовать использовать getForEntity вместо getForObject и также проверить заголовки. – alfcope
Когда я обращаюсь к веб-службе непосредственно из браузера, возвращается XML-представление объекта. –
Я думаю, у вас нет конвертера сообщений HTTP для зарегистрированного json. Что вы получаете при вызове rt.getMessageConverters() на вашем клиенте? – alfcope