我在JAX-RS应用程序(Jersey 1.19)中有一个异常映射器:
public class IllegalArgumentExceptionMapper
implements ExceptionMapper<IllegalArgumentException> {
@Override
public Response toResponse(IllegalArgumentException e) {
Response.Status status = Response.Status.BAD_REQUEST;
return Response.status(status).entity(e.getMessage()).build();
}
}
在这种情况下,它正常工作(客户端将获得HTTP状态400):
@GET
@Path("/test1")
public String test2() {
throw new IllegalArgumentException("exception 1");
}
但如果我像那样做流式输出:
@GET
@Path("/test2")
public String test2() {
return new StreamingOutput() {
@Override
public void write(OutputStream output) {
throw new IllegalArgumentException("exception 2");
}
};
}
然后不使用异常映射器,客户端获取HTTP状态500.那么如何强制它使用异常映射器?