2017-02-02 3 views
1

私はレスポンスのstatusTextを設定する必要があるサードパーティのものを使用しています。私が何をしても、それはちょうど""です。私は使用しています 4.3.4と春のブート 1.4.2。SpringがレスポンスのstatusTextを設定していません

私は私のコントローラメソッドにパラメータとしてHttpServletResponseを有し、かつ、このようなsendErrorを呼び出してみました:

public void foo(@PathVariable String myVar, HttpServletResponse response) throws IOException 
{ 
    //... other stuff 
    response.sendError(200, "OKOKOKOKOK"); 
} 

しかし、実際の応答がブラウザに来るとき、応答は次のようになります。

{"timestamp":1486068130749,"status":200,"error":"OK","message":"OKOKOKOKOK","path":"/my/path"} 

statusTextはまだ""です。私は、クライアントに返信する前にこの応答を生成している必要があることを知っています。どうすればこれを防ぐことができますか? statusTextに空でない文字列を設定する方法はありますか?

答えて

1

サーブレットコンテナから送信されたHTTPステータスラインを参照している必要があります。 Tomcat 8.5以降では、HTTP理由フレーズは必須ではなく、HTTPクライアントが読むべきではないため、もう書き込まれません。this Spring Boot issue for more detailsを参照してください。

+0

http://tomcat.apache.org/tomcat-8.5-doc/changelog.html: 'RFC 7230は、クライアントがHTTP/1.1応答メッセージの理由フレーズを無視すべきだと述べています。理由フレーズはオプションなので、Tomcatはそれを送信しません。 ' – GKislin

関連する問題