你
@Produces因未捕获的异常是由JAX-
RS处理注释被忽略使用预定义(默认)运行时
ExceptionMapper如果您希望自定义返回的消息在一个特定的异常的情况下,你可以创建自己
ExceptionMapper来处理它。在您的情况下,您需要一个人来处理
NotFoundException异常并在“
accept”标头中查询所请求的响应类型:
@Providerpublic class NotFoundExceptionHandler implements ExceptionMapper<NotFoundException>{ @Context private HttpHeaders headers; public Response toResponse(NotFoundException ex){ return Response.status(404).entity(yourMessage).type( getAcceptType()).build(); } private String getAcceptType(){ List<MediaType> accepts = headers.getAcceptableMediaTypes(); if (accepts!=null && accepts.size() > 0) { //choose one }else { //return a default one like Application/json } }}


