我已经使用 Apache Came 和 Apache CXF 以及“代码优先”方法部署了一个 Web 服务。它工作正常。
<cxf:cxfEndpoint id="operacionesWSEndpoint" address="/operaciones"
serviceClass="foo.bar.OperacionesService">
</cxf:cxfEndpoint>
但我想衡量我的服务的性能并记录它。为此,我使用以下切入点使用 Spring AOP
@Pointcut("execution(* foo.bar.OperacionesService.*(..))")
public void operacionsMethods() {
}
@Around("operacionsMethods()")
public Object logTimeMethod(final ProceedingJoinPoint joinPoint) throws Throwable {
StopWatch stopWatch =
new StopWatch(joinPoint.getTarget().getClass().getSimpleName() + "."
+ joinPoint.getSignature().getName());
stopWatch.start();
Object retVal = joinPoint.proceed();
stopWatch.stop();
log.debug("performance: {}", stopWatch.shortSummary());
return retVal;
}
嗯,不工作。其他方法和服务正在使用相同的方法 (AOP) 进行记录,但不是 Camel 公开的 Web 服务。
我认为我的代码没有任何错误:服务和其他方面一样有效。我觉得我在这里遗漏了一些关于 Apache Camel - CXF 和 Spring AOP 的东西,我没有发现类似的问题。
有任何想法吗?