私はSpring REST / Backboneアプリケーションに取り組んでいます。
GET は問題なく機能しますが、PUT には問題があります (おそらく DELETE でも同じです)。
私のSpringコントローラーには次のメソッドがあります:
@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 リクエストを許可するように設定する必要がありますか?
編集:
これが Jetty 構成の問題であると仮定して、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 が再び機能するようになりました)。