2012-11-19 3 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