0

UnauthorizedException で WebApplicationException を拡張しました。

public class UnauthorizedException extends WebApplicationException {

私の REST クラスは、サブクラス メソッドである authCheck を実装する基本クラスを拡張します。

try{
  authCheck();
  RecordingList recordings = CODIRecording.getRecordings(type, timeframe);
  return Response.ok().entity(recordings).build();
}catch(WebApplicationException e){
  throw e; // Results in 500
  throw new UnauthorizedException(); // Results in 401
}

authCheck が失敗すると、UnauthorizedException がスローされます。サブクラス メソッドに catch/try がない場合 (例外は authCheck から伝搬されるだけ)、または例外を再スローする場合、クライアントは 500 を受け取ります。

メソッドのキャッチがNEW UnauthorizedException をスローする場合、クライアントは予想どおり 401 を受け取ります。

これは「正常な」動作ですか?奇妙に思えます。

4

1 に答える 1

0

実際にキャッチしているのはUnauthorizedExceptionではなく、他のWebApplicationExceptionだと思います。デバッガーを試しましたか?または、catch句でe.printStackTrace()を実行して確認してください。

于 2012-04-27T19:33:07.013 に答える