2016-05-06 2 views
0

WebsphereプラグインはHTTPカスタムエラーコード422をクライアントに返さず、代わりに500エラーメッセージを表示します。 これはWAS 8.5.5.9、IBM HTTP Serverにあります。WebsphereプラグインはHTTPカスタムエラーコード422をクライアントに転送せず、代わりに500エラーメッセージを表示します

+0

http_plugin.logの結果はどうでしたか? plugin-cfg.xmlでTRACEを有効にできますか? – covener

+0

はい、トレースを有効にしました。これはプラグインログのエラーです。 – Dilip

+0

[Tue May 03 07:41:10 2016] 00005838 00001efc - 詳細:HTTP/1.1 422 [Tue May 03 07:41:10 2016] 00005838 00001efc - エラー:lib_htresponse:htresponseRead:応答コード422を受信しました。応答を読み取る際にエラーが発生しました。 [Tue May 03 07:41:10 2016] 00005838 00001efc - DEBUG:lib_htresponse:htresponseSetError:INVALID_FORMAT |(3、Line:772)にエラーを設定する [Tue May 03 07: 41:10 2016] 00005838 00001efc - エラー:ws_common:websphereExecute:新しいストリームからの読み込みに失敗しました。 – Dilip

答えて

0

422ステータスを設定しているにもかかわらず、ステータスコードの後に​​単語があることを確認する必要があります。私のテストでは、たとえばHTTPServletResponse#setStatusと未知のステータスコードを使用すると、WASは少なくとも "Undefined"という単語を追加します。

最も安全な方法は、HTTPServletResponse#sendErrorを使用し、ステータスコードと理由文字列が必要です。

+0

よろしいですか。ブラウザ/ applcationから 実際のエラーメッセージは次のとおりです。 エラー -status:500 -error: -exceptionを未定義:未定義 -message:代わりに、本当に適切ではありません422応答 – Dilip

+0

の を未定義。あなたのログにはステータスラインが無効である "HTTP/1.1 422"と表示されています。ステータスコードの後ろに理由フレーズが必要です。 sendError()では、両方を指定する必要があります。あなたのコードで422をどのように生成しますか? – covener

+0

よろしいですか。私は確認する必要があります。おかげさまで – Dilip