It looks like the same problem I was having. Based on what you've provided, it looks like you're using Spring AOP on an object that is not created by Spring (presumably Jersey is what creates your controller class instances) and therefore the advice is not being applied. Eclipse says its being advised, but that would only be for instances of your controller that are created by Spring. The ones you are actually using, the ones created by Jersey (or whatever provider you are using), are not advised.
I spent a lot of time trying to get Jersey to use Spring to create controller instances (including a couple of plugins that claimed to be able to do just that), but never could get it to work. I was able to get it working by using AspectJ directly instead of Spring AOP. It wasn't very hard, with exception of figuring out how to get spring to inject into the aspect.
Added:
The annotations remain the same. You just need to remove the AOP stuff from spring.xml, and create an aop.xml file in META-INF. Here's what mine looks like:
<!DOCTYPE aspectj PUBLIC "-//AspectJ//DTD//EN" "http://www.eclipse.org/aspectj/dtd/aspectj.dtd">
<aspectj>
<aspects>
<aspect name="com.ancestry.academy.api.ServiceApiAspect" />
<aspect name="com.ancestry.academy.manager.ManagerApiAspect" />
</aspects>
</aspectj>
You can keep Spring AOP for classes that are spring loaded. You only have to do this for classes that are created outside of spring (like controllers for jax).
There's one little piece of black magic that I don't really understand. If you need to use spring to inject into your aspect itself, then you need to declare it in spring.xml like this:
<bean id="serviceApiAspect" class="com.ancestry.academy.api.ServiceApiAspect" factory-method="aspectOf" />
<bean id="managerApiAspect" class="com.ancestry.academy.manager.ManagerApiAspect" factory-method="aspectOf" />
Note that my aspects do NOT have a method named aspectOf. Apparently that's added by AspectJ. That was pretty much all there was to it.