话题引入:
使用hibernate+struts框架开发项目时,使用占位符时,系统抛出如下异常:
Exception:
java.lang.reflect.InvocationTargetException
root Cause:
java.lang.NoSuchMethodError: antlr. Collections.AST.getLine()I
原因:
由于我用的是MyEclipse自动生成的struts和hibernate类库,hibernate中有个antlr-2.7.7.jar,而struts中有个antlr-2.7.2.jar。异常的原因就是说没有找到antlr.Collections.AST类中的getLine()方法,高版本的jar中有getLine()方法,而低版本中没有getLine()方法,系统默认使用的是低版本的jar包。
解决办法:
去除struts类库中的antlr.jar包即可,还需要清理并构建这个项目,因为有的项目的配置信息一时更改不过来。