Java JAX-RS ExceptionApper未捕获IllegalArgumentException
以下ExceptionMapper未能捕获Java JAX-RS ExceptionApper未捕获IllegalArgumentException,java,json,jax-rs,Java,Json,Jax Rs,以下ExceptionMapper未能捕获非法argumentException并向客户端返回错误的请求响应的原因是什么 这个ExceptionMapper应该捕获异常,并用400响应错误,比如客户端向JAX-RS资源发送JSON数组而不是预期的JSON对象。此外,它还提供了一个JSON对象来更详细地描述错误 @Provider public class IllegalArgumentExceptionMapper implements ExceptionMapper<IllegalArg
非法argumentException
并向客户端返回错误的请求响应的原因是什么
这个ExceptionMapper应该捕获异常,并用400响应错误,比如客户端向JAX-RS资源发送JSON数组而不是预期的JSON对象。此外,它还提供了一个JSON对象来更详细地描述错误
@Provider
public class IllegalArgumentExceptionMapper implements ExceptionMapper<IllegalArgumentException> {
public Response toResponse(IllegalArgumentException ex) {
JsonObject json = Json.createObjectBuilder().add("message", "Body should be a JSON Object").build();
return Response.status(Response.Status.BAD_REQUEST).entity(json).build();
}
}
这是资源操作:
@POST
public Response postSignup(JsonObject signupJson) throws UnprocessableEntityException { ... }
我们这里讨论的是Java EE 7,我尝试使用Payara 4.1和股票JAX-RS提供商运行,没有涉及任何框架。您确定
Java.lang.IllegalArgumentException
没有包含在另一个异常中吗?您是否尝试了一个异常映射程序(如实现ExceptionMapper
)来查看所有的异常。
@POST
public Response postSignup(JsonObject signupJson) throws UnprocessableEntityException { ... }