Exception 使用ResponseBuilder时Jersey JAX-RS消息异常

Exception 使用ResponseBuilder时Jersey JAX-RS消息异常,exception,jersey,jax-rs,Exception,Jersey,Jax Rs,当我像下面这样在我的服务中抛出一个时,我会得到一个404响应代码,这正是我所期望的 throw new WebApplicationException(Response.Status.NOT_FOUND); 当我试图通过一个函数在我的异常中添加更多的信息时,我得到了一个500响应代码。这是我的增强代码和回复信息: List<Error> errors = new ArrayList<>(); errors.add(new Error(ErrorCode.PDF_GENE

当我像下面这样在我的服务中抛出一个时,我会得到一个404响应代码,这正是我所期望的

throw new WebApplicationException(Response.Status.NOT_FOUND);
当我试图通过一个函数在我的异常中添加更多的信息时,我得到了一个500响应代码。这是我的增强代码和回复信息:

List<Error> errors = new ArrayList<>();
errors.add(new Error(ErrorCode.PDF_GENERATION_ERROR));
ErrorResponse errResponse = new ErrorResponse();
errResponse.setErrors(errors);
throw new WebApplicationException(Response.status(Response.Status.NOT_FOUND).entity(errResponse).build());
当我抛出WebApplicationException时,我是否可以在响应中获得额外的错误代码信息?

尝试以下方法:

String errResponse = "convert your errors to text";
throw new WebApplicationException(Response.status(Response.Status.NOT_FOUND).entity(errResponse).build());
这可能会起作用,因为JAX-RS可以转换基本类型,但要转换
List
,您需要注册一个自定义
MessageBodyWriter

String errResponse = "convert your errors to text";
throw new WebApplicationException(Response.status(Response.Status.NOT_FOUND).entity(errResponse).build());