It's because the default spring APO proxy gets the methods from the interface and not the class. So when the method call is the one from the interface and not the class.
You have several choices:
1.either you change your xml configuration to <aop:config proxy-target-class="true">
and it should work since the proxy will get the class and not the interface. If you have several xml aop config, and if one of them targets the target class then all of them will do the same so be careful.
2.Or you stick with the default and then you put your annotations on the interface. That works perfectly fine as long as you are careful with your annotations. Especially if you have transactions.
3.There might be an other solution using the method call to get the target class using ClassUtils to get the class behind the proxyed interface, but I did not look to much into it.
Hope this helps