AspectJ - 无法注册非方面错误
AspectJ - Cannot register non aspect error
我正在尝试使用 AspectJ 和 运行 时间编织。
我创建了一个方面
@Aspect(value = "TraceAspect")
public class TraceAspect {
@Around("execution(* *(..))")
public Object around(ProceedingJoinPoint invocation) throws Throwable{
System.out.println(String.format("Invocing %s", invocation.getSignature().getName()));
try {
Object ret = invocation.proceed();
System.out.println(String.format("Done Invocing %s", invocation.getSignature().getName()));
return ret;
} catch (Throwable throwable) {
throw throwable;
}
}
}
我的 aop.xml 文件是
<aspectj>
<aspects>
<aspect name="TraceAscpect"></aspect>
</aspects>
<weaver options="-debug -showWeaveInfo"/>
但是当我 运行 程序出现异常时 -
java.lang.RuntimeException: Cannot register non aspect: TraceAscpect , TraceAscpect
我忘记添加了什么?
看来您在 XML 定义中拼错了方面的名称,应该是 TraceAspect
而您输入的是 TraceAscpect
.
正如 Andy 所指出的,更正 XML 文件中的拼写错误。我也有同样的例外。后来我意识到我的切面不在 CLASSPATH 上。这为我解决了这个问题。确保 TraceAspect
在您的 CLASSPATH 中。
我正在尝试使用 AspectJ 和 运行 时间编织。 我创建了一个方面
@Aspect(value = "TraceAspect")
public class TraceAspect {
@Around("execution(* *(..))")
public Object around(ProceedingJoinPoint invocation) throws Throwable{
System.out.println(String.format("Invocing %s", invocation.getSignature().getName()));
try {
Object ret = invocation.proceed();
System.out.println(String.format("Done Invocing %s", invocation.getSignature().getName()));
return ret;
} catch (Throwable throwable) {
throw throwable;
}
}
}
我的 aop.xml 文件是
<aspectj>
<aspects>
<aspect name="TraceAscpect"></aspect>
</aspects>
<weaver options="-debug -showWeaveInfo"/>
但是当我 运行 程序出现异常时 -
java.lang.RuntimeException: Cannot register non aspect: TraceAscpect , TraceAscpect
我忘记添加了什么?
看来您在 XML 定义中拼错了方面的名称,应该是 TraceAspect
而您输入的是 TraceAscpect
.
正如 Andy 所指出的,更正 XML 文件中的拼写错误。我也有同样的例外。后来我意识到我的切面不在 CLASSPATH 上。这为我解决了这个问题。确保 TraceAspect
在您的 CLASSPATH 中。