我有一个用Spring Framework v 3.2.0编写的REST服务
这是控制器:
@Controller
@RequestMapping("/volunteer")
public class VolunteerController {
//several methods not included (all HTTP GET & working properly)
@RequestMapping(value="/{volunteerId}/assignments/{sessionId}",
method=RequestMethod.PUT, params={"worked"})
@ResponseStatus(HttpStatus.NO_CONTENT)
public void setWorkedFlag(@PathVariable int volunteerId,
@PathVariable int sessionId,
@RequestParam int worked) {
assignmentMapper.setWorked(volunteerId, sessionId, worked);
}
}
当我使用此网址提交PUT请求时:
http://localhost:8080/volunteer/298/assignments/1?worked=true
我得到一个400 restonse的消息:客户端发送的请求在语法上是不正确的。
我还可以确认底层资源不需要修改。
我将注释与请求URL进行了比较,但看不出任何明显错误的内容。此外,其他方法(此处省略)都正常工作,因此应用程序上下文已设置好。
有什么想法吗?