Я определил следующее Exception Mapper для обработки пользовательского HttpCustomException
package com.myapp.apis;
import com.myapp.apis.model.HttpCustomException;
import com.myapp.apis.model.HttpCustomExceptionStatusType;
import com.myapp.apis.model.HttpCustomNotAuthorizedException;
import javax.ws.rs.core.Response;
import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.ext.Provider;
@Provider
public class HttpCustomExceptionMapper implements ExceptionMapper <HttpCustomException> {
@Override
public Response toResponse (HttpCustomException e) {
Response response = Response.status (new HttpCustomExceptionStatusType (Response.Status.UNAUTHORIZED, e.getMessage ())).build ();
if (e instanceof HttpCustomNotAuthorizedException) {
response = Response.status (new HttpCustomExceptionStatusType (Response.Status.INTERNAL_SERVER_ERROR, e.getMessage ())).build ();
}
System.out.println ("HttpCustomExceptionMapper: " + response.getStatus () + ", " + response.getStatusInfo ().getReasonPhrase ());
return response;
}
}
Когда в коде добавляется HttpCustomNotAuthorizedException
, я вижу сообщение журнала, определенное в конце toResponse
метод, в кат.Итак, класс HttpCustomExceptionMapper вызывается во время обработки запроса.Но в конечном ответе, который я вижу в клиенте, я вижу только стандартное сообщение Not Authorized
, а не пользовательское сообщение, которое я установил в ответе.
Почему это происходит?