AspectJ与weblogic
我正在尝试使用LTW在Weblogic上运行AspectJ。我的切入点是针对公共构造函数和方法,建议是针对之前、之后和之后。当我访问一个简单的“Hello World”jsp时,我遇到以下错误: 这是我的aop.xml文件:AspectJ与weblogic,weblogic,aop,aspectj,aspect,pointcut,Weblogic,Aop,Aspectj,Aspect,Pointcut,我正在尝试使用LTW在Weblogic上运行AspectJ。我的切入点是针对公共构造函数和方法,建议是针对之前、之后和之后。当我访问一个简单的“Hello World”jsp时,我遇到以下错误: 这是我的aop.xml文件: 这是我的方面文件: package foo.aspect; @面貌 公共类默认方面{ @切入点(“执行(public*.new(..)&&&&!在(foo.aspect.*)内)” 公共无效点新建(连接点此连接点){ } @之后(“pointCutNew(thisJoi
这是我的方面文件:
package foo.aspect;
@面貌
公共类默认方面{
@切入点(“执行(public*.new(..)&&&&!在(foo.aspect.*)内)”
公共无效点新建(连接点此连接点){
}
@之后(“pointCutNew(thisJoinPoint)”)
新的公共无效通知(JoinPoint thisJoinPoint){
}
//其他建议和切入点的类似模式(用于方法)
}
这个方面被编译(使用普通的javac编译器)到foo.jar中
我通过添加以下内容来运行Weblogic:
java -javaagent:<path_to aspectweaver.jar> -Xbootclasspath/p:<path to {foo.jar, aspectweaver.jar}>
java-javaagent:-Xbootclasspath/p:
我认为这很可能是类路径/类加载器问题,因为AspectJ无法在DefaultAspect类中创建“aspectOf()”方法
请帮忙 您是否也尝试将aspectjrt.jar添加到类路径?实际上,它应该是aspectweaver.jar的一个子集,并且不是必需的,但是您可能还是想试试它 更新:Hm,可能问题在于您将方面放在引导类路径而不是普通类路径上,甚至在它之前,也就是说,您让它首先被找到,甚至可能在Java代理之前。也许你想改变这一点
因为我不是应用服务器用户,尤其不是Weblogic专家,所以您可能需要咨询示例配置。找到了答案。请注意,这仅适用于LTW(加载时编织) 从编织角度来看,主要有4个关键组件:
- 摆弄bootclasspath(就像我一样)
- 任何类路径中的aspectjrt.jar
java -javaagent:<path_to aspectweaver.jar> -Xbootclasspath/p:<path to {foo.jar, aspectweaver.jar}>