2014-02-28 3 views
0

현재 개발중인 휴식 서비스에 대한 Rest Client를 개발 중입니다. 나는 모든 클라이언트 호출의 성능을 측정 할 수 있기를 바랍니다.저지 클라이언트 : 성능 측정을 위해 각 요청을 가로 챌 수 있습니까?

WebTarget target ... // just assume a WebTarget is given 
long before = System.currentTimeMillis(); 
Response response = target.request().get(); // execute the request 
long after = System.currentTimeMillis(); 
long timeTaken = after - before; 
// now log timeTaken or whatever one might wanna do 

은 내가 각 요청에이 코드를 적용 할 수 있도록, 각 요청을 가로 챌 수 있나요 : 하나는 쉽게 이런 일을 할 수 있습니까? 나는이 코드를 반복해서 반복하고 싶지 않습니다. 이 코드를 실행하기 위해 재정의 할 수있는 코드의 중심 부분을 검색했지만 적절한 것을 찾지 못했습니다.

답변

2

Jersey 2.6 이상을 사용하는 경우 새로 추가 된 HK2 AOP feature을 사용할 수 있습니다. 기본적으로 당신은 어플 리케이션의 초기화와 가까운 곳에서 Interception Service의 구현을 추가하고 AOP 얼라이언스 메소드 인터셉터를 제공합니다. 그런 다음 인터셉터의 성능을 측정하고자하는 코드를 작성할 수 있습니다.

+0

Thx. 나는 그것을 들여다 볼 것이다. 저 인터셉터를 Jersey Client에 어떻게 등록합니까? 이 인터셉터 서비스는 클라이언트의 인스턴스에 등록 할 수있는 공급자입니까? – mavilein

+0

저지 클라이언트를 보려면 여기를 참조하십시오. https://jersey.java.net/documentation/latest/user-guide.html#d0e4662. 나는 당신이 찾고있는 ServiceLocatorClientProvider 클래스를 사용하는 것이 좋다고 생각한다. – jwells131313