我正在使用自定义 cxf 拦截器来记录服务调用的请求/响应,我想记录调用时间以及响应。
有没有办法做到这一点?
您需要将开始时间存储到Exchange
您的 in-interceptor 中(如果您是服务器,如果您是客户端,则为 out-interceptor)
message.getExchange().put("com.myapp.startTime", System.currentTimeMillis());
并在输出(分别输入)拦截器中检索它
long timeTaken = System.currentTimeMillis() - (Long)message.getExchange().get("com.myapp.startTime");
根据您现有拦截器在链中的确切位置,您可能希望在一对专用的拦截器中执行此操作,其中一个尽可能早地在链中,而一个尽可能晚地输出(对于服务器,反之亦然如果您是客户)。