Jersey 泽西岛客户:是否可以拦截每个性能测量请求?

Jersey 泽西岛客户:是否可以拦截每个性能测量请求?,jersey,jersey-2.0,jersey-client,Jersey,Jersey 2.0,Jersey Client,我目前正在为我们目前正在开发的Rest服务开发一个Rest客户端。我希望能够测量所有客户端调用的性能。人们可以很容易地做这样的事情: WebTarget target ... // just assume a WebTarget is given long before = System.currentTimeMillis(); Response response = target.request().get(); // execute the request long after = Syst

我目前正在为我们目前正在开发的Rest服务开发一个Rest客户端。我希望能够测量所有客户端调用的性能。人们可以很容易地做这样的事情:

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

是否可以拦截每个请求,以便我可以将此代码应用于每个请求?我不想重复这段代码。我搜索了一段可以重写以执行此代码的核心代码,但没有找到合适的代码。

如果您使用的是Jersey 2.6或更高版本,则可以使用新添加的。基本上,您要做的是在接近应用程序初始化的地方添加一个实现并提供AOP联盟方法拦截器。然后,您可以编写任何代码来衡量拦截器的性能。

Thx。我会调查一下的。如何向Jersey客户端注册这些拦截器?这些侦听器服务也是可以在客户端实例上注册的提供程序吗?您可能希望在此处查找Jersey客户端:。我相信使用ServiceLocatorClientProvider类可能是您想要的。