从 JAX-RS Rest 服务返回 JSON 格式的异常

use*_*655 1 java rest json exception jax-rs

从 Rest 服务抛出的异常是否可能以 JSON 形式返回?我有一个 JAX-RS Rest 服务,我想在其中实现这一目标。当我现在抛出它时,它会映射到 HTML 响应,这不是我想要的。据我了解,ExceptionMapper 也会将其映射到 HTML?是否有任何其他替代方案或库允许以 JSON 格式返回异常?

Jus*_*tas 5

它将以 JSON 形式响应。

@Provider
@Singleton
public class ExceptionMapperProvider implements ExceptionMapper<Exception>
{

    @Override
    public Response toResponse(final Exception exception)
    {
            return Response.status(HttpStatusCodes.STATUS_CODE_SERVER_ERROR).entity(new BasicResponse(InternalStatus.UNHANDLED_EXCEPTION, exception.getMessage())).type(MediaType.APPLICATION_JSON).build();    
    }
}

@XmlRootElement
public class BasicResponse {

    public String internalStatus;

    public String message;

    public BasicResponse() {}

    public BasicResponse(String internalStatus, String message){
        this.internalStatus = internalStatus;
        this.message = message;
    }
}
Run Code Online (Sandbox Code Playgroud)