2016-10-11 13 views
0

私の意図は、Spring MVCでカスタムhttpエラーコードを返すことです。たとえば、601,602 ...というように、顧客はエラーを明確に区別することができます。 Spring MVCでカスタムHTTPエラーコードを返すには?

@ExceptionHandler(Exception.class) 
    public @ResponseBody 
    ErrorAlmacen generalExceptionHandler(Exception exception, HttpServletResponse response) { 
     response.setStatus(601); 
     ErrorAlmacen error = new ErrorAlmacen(); 
     ... 
     return error; 
    } 

しかし、私の@ExceptionHandlerがresposeオブジェクトでこれらの値を設定すると、春は何とか200

に変換は、私がしようとしています何をすることが可能であり、または春は私を許可するつもりはありません?

答えて

0

が可能です。

HTTPは、ご自分の用途に合わせて再設計できないよく知られたプロトコルです。

プロトコルは「言語」であり、2人の当事者が認識し、どのようにして互いに話し、通信するかというルールです。

WebアプリケーションをWebサーバーにデプロイすると、そのWebサーバーはクライアントからのHTTP要求に応答でき、クライアントはエンドユーザーのブラウザになります。そのブラウザは、OK応答のための200のコードだけを受信することを予期し、OK承認のための他のHTTPコードは受信しません。

ご使用のブラウザは、使用したいステータス602ではなく、ステータス200を解決することを認識しています。

これはブラウザの構築方法で、です。プロトコルを変更することはできません。

+0

私のクライアントは、ブラウザではありません、そのカスタムエラーコードを理解することができるようになるアプリケーションより。 Spring MVCではカスタムコードを返すことはできません。 – Snowblind

+0

まだ、あなたのニーズに応じてプロトコルを変更することはできません。あなたのクライアント、Springモデル、Ajax + jsonと通信するには他にも方法があります。 –

+0

Tnx、私は投票に感謝します。 –

関連する問題