サーバに送信されたPUTリクエストをキャプチャする際に問題が発生しました。Spring Framework、PUTメソッドを有効にする
これらは私のメソッドです:
@RequestMapping(method= RequestMethod.GET)
public String getCity(@PathVariable(value="cid") String cid, @RequestParam(value="State") Integer state, Model model) {
System.out.println("get request");
return "index";
}
@RequestMapping(method= RequestMethod.PUT)
public String putCity(@PathVariable(value="cid") String cid, @RequestParam(value="State") Integer state, Model model) {
System.out.println("put request");
return "index";
}
私が呼び出しをトレースしたとき、私のPUT要求は、それが常に得る」と読み、アウト画面上..私のクラスでは、GETメソッドではなくPUTメソッドによって処理されました要求"。私はブラウザのログをチェックして、正しいPUTリクエストを送信したことを確認していますので、ここでいくつかのSpringの設定を見逃してしまったと思いますが、何か分かりません。
ありがとうございます。
EDIT:クラスでの追加コード:
@Controller
@RequestMapping(value="/retail/{cid}/master/city")
public class City {
@RequestMapping(value="/foo1", method= RequestMethod.GET)
public String getCity(@PathVariable(value="cid") String cid, @RequestParam(value="State") Integer state, Model model) {
System.out.println("get request");
return "index";
}
@RequestMapping(value="/foo2", method= RequestMethod.PUT)
public String putCity(@PathVariable(value="cid") String cid, @RequestParam(value="State") Integer state, Model model) {
System.out.println("put request");
return "index";
}
}
EDIT2: 申し訳ありませんが、私が二回、この警告をキャッチ...ログを調べるとき、私は非常に徹底しなかったようです。
WARNING: Error in annotation processing: java.lang.NoClassDefFoundError: org/aopalliance/intercept/MethodInterceptor
どのように修正するのですか?
'getCity'が呼び出されている場合、そのリクエストは' GET'メソッドです。追加の設定は不要ですが、間違った種類のリクエストを送信する必要があります。あなたのクライアントが正しいことをしていると確信していますか? – skaffman
はい。クライアントが正しいことをしていると確信しています。コンソールにログインしていました。クロムとfirefoxで試して、両方のPUT要求を送信しました。 – Magician
'getCity'に' HttpServletRequest'パラメータを追加し、 'request.getMethod()'をログに記録し、それが何であるかを見てください。 – skaffman