由于公司使用的框架版本比较久,需要将现有的框架进行升级。项目使用最新版本的struts/spring/hibernate,并使用最新版本的jdk 1.7和最新的tomcat 7。
在项目的classpath中加入spring的最新版本3.2相关的jar包,并且安装好jdk 1.7,配置好相关的环境变量。配置好tomcat 7相关参数(比如tomcat的目录路径,jdk等),发布并运行项目,结果出现了异常,这个异常最后的一句是这样的:
error at ::0 can't find referenced pointcut xxx
在网上查了很久的资料,才发现是由于jdk版本过高,导致以前项目中的一些jar包不能使用,具体的jar包是aspectjrt.jar和aspectjweaver.jar。AspectJ是一个面向切面的框架,AspectJ定义了AOP语法,它有一个专门的编译器用来生成遵守Java字节编码规范的Class文件。
解决办法:
1. 将jdk版本由1.7换成1.6,但是由于组内的需求,此方案不合适
2. 将两个jar包换成最新的包
在http://www.eclipse.org/aspectj/downloads.php 中下载最新版本aspectj-1.7.2.jar,并将此jar包用zip解压就可以得到最新版的aspectjrt.jar和aspectjweaver.jar,最后将这两个包与项目中的久版本的包进行替换,将新版的jar包加入classpath中。
本文介绍了一种在使用最新版本的JDK1.7时遇到的AspectJ兼容性问题及解决方案。当尝试运行使用AspectJ的项目时出现错误提示,原因是AspectJ的jar包不兼容高版本的JDK。文中提供了两种解决方法,并详细描述了通过更新AspectJ版本来解决问题的过程。

4446

被折叠的 条评论
为什么被折叠?



