50.3. JAX-RS 2.0 예외 유형
50.3.1. 개요
JAX-RS 2.0에는 애플리케이션 코드에서 throw(및 catch)할 수 있는 여러 특정 HTTP 예외 유형이 도입되었습니다(기존 WebApplicationException
예외 유형 포함). 이러한 예외 유형을 사용하여 HTTP 클라이언트 오류(HTTP 4xx
상태 코드) 또는 HTTP 서버 오류(HTTP 5xx
상태 코드)에 대해 표준 HTTP 상태 코드를 래핑할 수 있습니다.
50.3.2. 예외 계층 구조
그림 50.1. “JAX-RS 2.0 애플리케이션 예외 계층 구조” JAX-RS 2.0에서 지원되는 애플리케이션 수준 예외의 계층 구조를 보여줍니다.
그림 50.1. JAX-RS 2.0 애플리케이션 예외 계층 구조
50.3.3. WebApplicationException 클래스
javax.ws.rs.WebApplicationException
예외 클래스(Tht-RS 1.x 이후 사용 가능)는 JAX-RS 2.0 예외 계층의 기반에 있으며 50.2절. “WebApplicationException 예외를 보고서에 사용” 에 자세히 설명되어 있습니다.
50.3.4. ClientErrorException 클래스
javax.ws.rs.ClientErrorException
예외 클래스는 HTTP 클라이언트 오류(HTTP 4xx
상태 코드)를 캡슐화하는 데 사용됩니다. 애플리케이션 코드에서 이 예외 또는 해당 하위 클래스 중 하나를 throw할 수 있습니다.
50.3.5. ServerErrorException 클래스
javax.ws.rs.ServerErrorException
예외 클래스는 HTTP 서버 오류(HTTP 5xx
상태 코드)를 캡슐화하는 데 사용됩니다. 애플리케이션 코드에서 이 예외 또는 해당 하위 클래스 중 하나를 throw할 수 있습니다.
50.3.6. RedirectionException 클래스
javax.ws.rs.RedirectionException
예외 클래스는 HTTP 요청 리디렉션(HTTP 3xx
상태 코드)을 캡슐화하는 데 사용됩니다. 이 클래스의 생성자는 리디렉션 위치를 지정하는 URI 인수를 사용합니다. 리디렉션 URI는 getLocation()
메서드를 통해 액세스할 수 있습니다. 일반적으로 HTTP 리디렉션은 클라이언트 측에서 투명합니다.
50.3.7. 클라이언트 예외 하위 클래스
JAX-RS 2.0 애플리케이션에서 다음 HTTP 클라이언트 예외(HTTP 4xx
상태 코드)를 발생시킬 수 있습니다.
BadRequestException
- 400 Bad Request HTTP 오류 상태를 캡슐화합니다.
ForbiddenException
- 403 Forbidden HTTP 오류 상태를 캡슐화합니다.
NotAcceptableException
- 406 Acceptable HTTP 오류 상태를 캡슐화합니다.
NotAllowedException
- 405 Method Not Allowed HTTP 오류 상태를 캡슐화합니다.
NotAuthorizedException
401 Unauthorized HTTP 오류 상태를 캡슐화합니다. 이 예외는 다음 경우 중 하나에서 발생할 수 있습니다.This exception could be raised in either of the following cases:
-
클라이언트가 필요한 자격 증명을 전송하지 않았거나 (HTTP
Authorization
헤더에 있음) - 클라이언트에서 자격 증명을 제공했지만 자격 증명이 유효하지 않았습니다.
-
클라이언트가 필요한 자격 증명을 전송하지 않았거나 (HTTP
NotFoundException
- 404 Not Found HTTP 오류 상태를 캡슐화합니다.
NotSupportedException
- 415 지원되지 않는 미디어 유형 HTTP 오류 상태를 캡슐화합니다.
50.3.8. 서버 예외 하위 클래스
JAX-RS 2.0 애플리케이션에서 다음 HTTP 서버 예외(HTTP 5xx
상태 코드)를 발생시킬 수 있습니다.
InternalServerErrorException
- 500 Internal Server Error HTTP 오류 상태를 캡슐화합니다.
ServiceUnavailableException
- 503 Service Unavailable HTTP 오류 상태를 캡슐화합니다.