3

Glassfish 3 で実行されている REST アプリケーションを構築していますが、パラメーターが列挙型にバインドされている場合の処理​​に問題があります。

 @FormParam("state") final State state

したがって、State は単なる列挙型であり、さまざまな種類の状態が含まれています。

解析できない値が送信された場合、http 400 が返されます。これは基本的に問題ありません。ただし、その例外をインターセプトし、クライアントに追加情報を提供するカスタム レスポンスを返す必要があります。(たとえば、説明を含む json オブジェクト:「状態が無効です」)。パラメータを独自のクラスにバインドし、例外処理に適切に対処できましたが、列挙型を使用する場合にこのケースを処理する方法に関する情報が見つかりませんでした。そのためにも専用のクラスを使用できると思いますが、列挙型を保持できる場合は避けたいと思います。

4

2 に答える 2

0

ヒント: MyException が WebApplicationException を継承している必要があります。その他の例外 (IllegalArgumentException など) は、そのスコープ内のどのプロバイダーによっても処理されません (要求の解析時)。

于 2017-05-24T15:10:37.770 に答える