Zerkz
Zerkz

Reputation: 721

Why is my advice/pointcut not running at all?

Both 'aop:aspectj-autoproxy' and 'mvc:annotation-driven' are present in the XML config. Both of these classes are defined as a bean inside of the same XML.

Using Spring 3.2.3.RELEASE and Google App Engine 1.8.1 in a local/dev environment.

My pointcut does not execute.

My advice. Declared inside a class annotated with @Aspect.

@Component
@Aspect
public class RequestLimiter {
    private MemcacheService cache = MemcacheServiceFactory.getMemcacheService();

@Pointcut("within(@pcs.annotations.LimitRequests com.zdware.pcs.controllers.PingCollectorController)")
public void methodRequestLimited(){}

 @Around("methodRequestLimited() && args(req,limitRequests)")
     public Object requestGateWay(ProceedingJoinPoint jp, HttpServletRequest req,LimitRequests limitRequests) throws Throwable {

     // do stuff

    }
}

The method I am using to test in the controller layer.

@Controller
public class PingCollectorController {
@RequestMapping(value="/test")
@LimitRequests(requestTimeLimit = 1, functionName = "Test")
public String test(){
    return "test"; // this will return me to a jsp that doesnt exist, but my advice is still not executing.
}
 }

Upvotes: 0

Views: 236

Answers (1)

Keith
Keith

Reputation: 4184

Is CGLIB in the classpath? It will be needed to generate the proxy (since your controller does not implement an interface, spring cannot use a simpler JDK proxy).

Upvotes: 2

Related Questions