Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JAX-RS ExceptionApper未捕获IllegalArgumentException_Java_Json_Jax Rs - Fatal编程技术网

Java JAX-RS ExceptionApper未捕获IllegalArgumentException

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

以下ExceptionMapper未能捕获
非法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 { ... }