@Around上的IllegalAccessError - Aspectj

时间:2018-01-15 16:16:11

标签: java spring-mvc aop aspectj

调用此AspectJ @Around函数时:

@Around("controllers() && methodsPointcut()")
    public Object returnControlerLog(ProceedingJoinPoint joinPoint) throws Throwable {
        Object value = joinPoint.proceed();
        this.log(LogTypes.CONTROLLER, value, joinPoint.getTarget().getClass(), "CONTROLLER RETURN",
                joinPoint.getSignature().getName());
        return value;
    }

我得到了

java.lang.IllegalAccessError: tried to access class my.aspect.package.LogAspect$LogTypes from class my.controller.package.MyController

在切入点指向的Spring函数控制器内部:

@RequestMapping(method = RequestMethod.PUT, value = "/doSth")
public @ResponseBody JSONObject doSth(@RequestParam String sth) {
 return new JSONObject().put("key", sth);
}

我刚刚根据我的需要调整了example

我有其他切入点@Before@AfterThrowing效果很好。

1 个答案:

答案 0 :(得分:0)

您没有展示代码中最重要的部分。我看到的不是包名,没有类声明,没有方面声明,只是片段。下次请提供一个MCVE,以防止人们做我现在要做的事情:猜测而不是复制并提供可靠的答案。

所以我有根据的猜测是你没有公开你的方面。请做,快乐。