不允许使用Spring Data REST PUT方法

时间:2013-08-19 08:48:59

标签: java spring rest spring-mvc spring-data

我最近实现了Spring Data REST(http://www.springsource.org/spring-data/rest),以便通过REST接口自动公开CRUD功能。

GET和POST都按预期工作,但是在使用PUT动词时我得到405方法不允许。

根据文件

Verb    Method
GET     CrudRepository<ID,T>.findOne(ID id)
POST    CrudRepository<ID,T>.save(T entity)
PUT     CrudRepository<ID,T>.save(T entity)
DELETE  CrudRepository<ID,T>.delete(ID id)

默认情况下,所有这些方法都会导出到客户端。我已经阅读了这里的文档(http://static.springsource.org/spring-data/rest/docs/1.1.0.M1/reference/htmlsingle/),但似乎无法找到这种行为的原因。

任何人都可以建议我可能出错的地方吗?我提供了一个RepositoryRestMvcConfiguration类,它定义了我所有Entity类的资源映射。

1 个答案:

答案 0 :(得分:11)

您尝试对POSTPUT请求使用相同的网址,但PUT通常需要必须更新的对象的ID。

Spring确实有localhost:8080/<applicationname>/<entityName>的映射,但只针对POST请求,因此错误。

尝试将PUT用于:

http://localhost:8080/<applicationname>/<entityName>/<objectId>