我正在研究Spring REST/Backbone应用程序。如何在Jetty中启用PUT方法?
尽管GET的工作很好,但我在PUT上遇到了问题(并且可能与DELETE相同)。
我的春天控制器有以下方法:
@RequestMapping(value="/{id}", method = RequestMethod.PUT)
public void putItem(@PathVariable("id") String id, @RequestBody Item item) {...}
但是,当我尝试保存骨干模型,我得到以下错误:
405 (HTTP method PUT is not supported by this URL)
的GET映射是在同一个控制器类并使用相同的URL注释(类级别)。
我的注释是否正确?我使用Jetty作为服务器,我需要配置它以某种方式允许PUT请求?
编辑:
假设这是一个码头配置问题,我增加了以下内容webdefault.xml
<web-resource-collection>
<url-pattern>*.do</url-pattern>
<http-method>GET</http-method>
<http-method>HEAD</http-method>
<http-method>PUT</http-method>
<http-method>POST</http-method>
</web-resource-collection>
的<security-constraint>
定义中。它的效果是,现在GET方法返回403(禁止) - 所以这就好像这个定义确实只会限制安全性,并不是使它更加自由的手段。我也尝试删除GET和PUT行,但它对我的原始405错误没有影响(当然它确实使GET再次工作)
骨干为什么会添加一个.do到任何东西?看起来像一些习惯 –