2017-08-28 7 views
1

私はspring MVCを使用して次のコントローラを記述しました。 リクエストURL/webbroker /は、GETとPOSTの両方のリクエストにマップされています。正常に動作しますが、POSTではエラーが発生します。getとpostの同じリクエストマッピングが春のために機能しない

リクエスト方法GETはサポートされていません。

なぜこのような動作をしますか?

@Controller 
public class ProxyController { 

    @Autowired 
    private RequestHandler reqHandler; 

    @Autowired 
    private ResponseHandler responseHandler; 


    @RequestMapping(value = "/webbroker/**", method = RequestMethod.GET) 
    public void edgefxGetRequest(HttpServletRequest httpRequest, HttpServletResponse httpResponse) 
      throws IOException {   
     HttpURLConnection connection = this.reqHandler.handleRequest(httpRequest, httpResponse, false); 
     this.responseHandler.sendResponse(connection, httpResponse); 
    } 

    @RequestMapping(value = "/webbroker/**", method = RequestMethod.POST) 
    public void edgefxPostRequest(HttpServletRequest httpRequest, 
      HttpServletResponse httpResponse) throws IOException, URISyntaxException { 
     HttpURLConnection connection = this.reqHandler.handleRequest(httpRequest, httpResponse, true); 
     this.responseHandler.sendResponse(connection, httpResponse); 
    } 

    @RequestMapping(value = "/webbroker-strong/**", method = RequestMethod.GET) 
    public void edgefxStrongGetRequest(HttpServletRequest httpRequest, HttpServletResponse httpResponse) 
      throws IOException {   
     HttpURLConnection connection = this.reqHandler.handleRequest(httpRequest, httpResponse, false); 
     this.responseHandler.sendResponse(connection, httpResponse); 
    } 

    @RequestMapping(value = "/webbroker-strong/**", method = RequestMethod.POST) 
    public void edgefxStrongPostRequest(HttpServletRequest httpRequest, 
      HttpServletResponse httpResponse) throws IOException, URISyntaxException { 
     HttpURLConnection connection = this.reqHandler.handleRequest(httpRequest, httpResponse, true); 
     this.responseHandler.sendResponse(connection, httpResponse); 
    } 
} 
+0

例外メッセージを投稿するだけでは、完全なスタックトレース/ロギングをポストしないでください。 –

答えて

1

これを試してみてください:

@RequestMapping(value = "/webbroker/**", method = { RequestMethod.GET, RequestMethod.POST }) 
public void edgefxRequest(HttpServletRequest httpRequest, HttpServletResponse httpResponse) 
     throws IOException {   
    HttpURLConnection connection = this.reqHandler.handleRequest(httpRequest, httpResponse, false); 
    this.responseHandler.sendResponse(connection, httpResponse); 
} 

を使用すると、両方のHTTPメソッドのためにあなたのハンドラメソッドを複製する必要はありません。配列としてmethodパラメータを宣言するだけです。

+0

wokringしないでください – jinal

関連する問題