我正在使用 apache CXF 实现 JAX-RS。我创建了一个 ExceptionMapper 来处理这样的错误请求:
public class ClientErrorExceptionMapper implements ExceptionMapper<ClientErrorException> {
@Override
public Response toResponse(final ClientErrorException exception) {
return Response.status(Response.Status.BAD_REQUEST).entity("Invalid request: Invalid URI.").build();
}
}
我不确定这在内部是如何工作的,但我认为如果用户发出无效请求,该框架会抛出异常,并且该处理程序将准备一条错误消息以发回。我的问题是我希望保留用户在请求中发送的一些自定义标头,以便我将其与响应一起发回。但是使用这个异常映射器,我看不到任何获取原始请求标头的选项。我可以在响应中设置任何新标头,但我希望保留请求标头- 就像我在正常请求中所做的那样。那么在 JAX-RS 中有什么方法可以保留或有效地引用当前请求中的自定义标头吗?