2012-11-19 88 views
2

我正在使用自定义cxf拦截器记录服务呼叫的请求/响应,我想记录呼叫与响应一起所用的时间。CXF呼叫持续时间记录

有没有办法做到这一点?

回答

4

您需要存储的开始时间到你在拦截的Exchange(如果你是一个服务器,进行拦截,如果你是一个客户端)

message.getExchange().put("com.myapp.startTime", System.currentTimeMillis()); 

,并在出检索(分别)拦截

long timeTaken = System.currentTimeMillis() - (Long)message.getExchange().get("com.myapp.startTime"); 

正是根据凡在你现有的拦截器坐你可能要为此在一对专用的拦截,用在一个尽可能早地在链和出一个作为链尽可能晚(对于服务器,反之亦然,重新一个客户)。

+0

此线程安全吗?我可以从另一个请求获得“com.myapp.startTime”吗? – Alexiuscrow