Я выполняю контроллер Spring MVC, и у меня все еще возникает проблема с операцией POST. Я прочитал много решений по stackoverflow, чтобы не исправить мою проблему.Spring MVC 3.1 REST services post method return 415
Мои достижения на данный момент:
- Я послал запрос GET с Ид и возвращает объект преобразуется в формат JSON успешно.
- мне не удалось отправить
POST
запрос с телом JSON,return = 415 UNSUPPORTED_MEDIA_TYPE
1) Я добавил к моему pom.xml Джексона API: 1.8.5
2) Мой файл конфигурации Spring: Я добавил все необходимые детали:
- viewResolver
- org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter
- MappingJacksonHttpMessageConverter
- MVC: аннотацию управляемые
- отсканировать мои контроллеры
3) Моя модель объекта проста: Счет с Id, Name и количество
@Document
public class Account implements Serializable {
private static final long serialVersionUID = 9058933587701674803L;
@Id
private String id;
private String name;
private Double amount=0.0;
// and all get and set methods
4) и, наконец, мой упрощенный класс контроллера:
@Controller
public class AdminController {
@RequestMapping(value="/account", method=RequestMethod.POST,
headers = {"content-type=application/json"})
@ResponseStatus(HttpStatus.CREATED)
public void addAccount(@RequestBody Account account){
log.debug("account from json request " + account);
}
@RequestMapping(value="/account/{accountId}", method=RequestMethod.GET)
@ResponseBody
public Account getAccount(@PathVariable("accountId") long id){
log.debug("account from json request " + id);
return new Account();
}
}
5) На стороне клиента я только исполненные локон команды: Успешно GET
команда:
curl -i -GET -H 'Accept: application/json' http://myhost:8080/compta/account/1
POST
команда, которая не удалась:
curl -i -POST -H 'Accept: application/json' -d '{"id":1,"name":"test",amount:"0.0"}' http://myhost:8080/compta/account
Любые идеи, где я буду неправильно?
ТНХ для ответа. опция -X не возвращает результат с моей командой curl. и Contet-type возвращают еще один плохой статус HTTP: 400 – user1842947