Я тоже столкнулся с той же проблемой. Вот как выглядел мой метод Controller:
@RequestMapping(method=RequestMethod.POST, value="/users/create",
headers="Accept=application/xml")
public @ResponseBody User createUser(@RequestBody User user) {
return user;
}
По сути, я просто собирался вернуть пользовательский объект в качестве подтверждения концепции, чтобы убедиться, что мой POST работает правильно. Однако я продолжал сталкиваться с «синтаксически некорректным» сообщением. Как только я действительно обновил свой код, чтобы получить действительный объект User, например, так:
@RequestMapping(method=RequestMethod.POST, value="/users/create",
headers="Accept=application/xml")
public @ResponseBody User createUser(@RequestBody User user) {
userService.createUser(user);
// do work
User newUser = userService.getUserById(user.getId());
return newUser;
}
он начал работать правильно.
Я протестировал мой REST API с помощью следующей команды CURL:
curl -X POST -HContent-type:application/xml -HAccept:application/xml --data "<user><username>Quinnster</username><password>password</password></user>" http://localhost:8080/api/users/create
Используя другой API для составления списка пользователей, я смог проверить, правильно ли был создан мой новый пользователь.
Опять же, не уверен, что это точно такая же проблема, как у вас, но это решило ее для меня
Спасибо,
Quinn