我做了Spring MVC的控制器,我仍然用POST操作得到的问题。 我读过许多计算器解决方案,而要解决我的问题。
我的成就在此刻:
- 我发出GET请求一个ID,并返回转化为成功的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,姓名和金额的账户
@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
任何想法,我要去哪里错了吗?