2009-10-08 3 views
0

내 응용 프로그램 : 내 Flex 클라이언트 응용 프로그램에서 호출되는 Tomcat BlazeDS 서버에 Java 원격 서비스 (25 개 이상)가 있습니다.Blazeds 서비스 시간 통계

내 요구 사항 : 각 서비스의 소요 시간 (총 시간)과 같은 통계를 수집해야합니다.

내 생각에 나는이 작업을 수행 할 수있는 세 가지 방법이 있습니다

1) 각 서비스를 변경하고 시작과 끝에서 타이머를 추가 (더있을 수 있습니다). --- 나쁜 습관 2) 나는 AOP를 사용할 수도 있지만,이 요구 사항에 대해서는 과도하게 대처할 것이라고 생각한다. --- over kill 3) 서블릿 필터. ---- 좋은 옵션

I really like option three but I am not sure how to do this with BlazeDS. Can it be done and if so any example/direction would be great. 

내가 내 Census app에서이 작업을 수행하는 서블릿 필터를 사용하면

답변

1

나는 해결책을 발견 :

내가 JavaAdaptor를 확장하고 호출 방법에, 나는 대상의 이름과 총 시간을 얻을 수 있습니다.

감사합니다.

0

감사합니다. 필터 code on sourceforge을 찾을 수 있습니다.

+0

그러나 필터 서블릿에서 서비스 이름을 얻으려면 어떻게해야합니까? – firemonkey

+0

아마도 조금 더 어려울 것입니다. 나는 쉽게 읽을 수있는 특별한 요청 매개 변수를 사용한다. 그러나 서비스 이름이 무엇인지 자세히 알아 보려면 AMF 응답을 분리해야 할 수도 있습니다. –

0

ServletFilter를 사용하려면 원시 HTTP 요청 내용을 AMF에서 Java 객체의 그래프로 deserialize해야합니다. 그래프에서 AsyncMessage의 인스턴스를 찾을 수 있다면 문제의 서비스에 직접 매핑되는 "대상"속성을 검사 할 수 있습니다. BlazeDS API에서 MessageDeserializer를 사용하여이 작업을 수행 할 수있는 것처럼 보이지만 작업 할 다른 객체에 따라 달라집니다.

스프링을 사용하고 있습니까? 그렇다면 AOP로 이것을하는 것은 매우 쉽습니다.