我的申请: 我在我的(Tomcat BlazeDS)服务器上有从我的Flex客户端应用程序调用的Java远程服务(超过25个)。
我的要求: 我需要收集他们的统计数据,比如每项服务花费的时间(总时间)。
我认为有三种方法可以做到这一点(可能更多)
1)更改每个服务并在开始和结束时添加计时器。 ---不好的做法 2)我也可以使用AOP,但我觉得这个要求过度杀人。 ---过度杀戮 3)servlet过滤器。 ----很好的选择
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.
谢谢
答案 0 :(得分:1)
我找到了解决方案:
我扩展了JavaAdaptor,在调用方法中,我可以获得目的地名称和总时间。
谢谢
答案 1 :(得分:0)
我使用servlet过滤器在我的Census app中执行此操作。您可以找到过滤器code on sourceforge。
答案 2 :(得分:0)
为了使用ServletFilter,它需要将原始HTTP请求内容从AMF反序列化为Java对象图。如果您可以在图中找到AsyncMessage的实例,则可以检查其“目标”属性,该属性直接映射到相关服务。看起来您可以使用BlazeDS API中的MessageDeserializer来执行此操作,但它也依赖于其他一些对象。
你在使用Spring吗?如果是这样的话,用AOP做这件事很容易。