SSH框架整合中,对于java.lang.NoSuchMethodError: antlr.collections.AST.getLine()错误解决
本人在进行SSH框架整合时,遇到自写的HQL查询的DAO出现java.lang.NoSuchMethodError: antlr.collections.AST.getLine()错误,分析后发现是Struts和Hibernate的Jar包里antlr2.7.2 与 antlr2.7.7 冲突所致。
SSH版本信息:
Spring3.1.1、Struts2.1、Hibernate4.1.4
解决方案:
1、找到hibernate的antlr2.7.7,复制到struts的core包下;
2、在web工程下选择已经导入的struts的Libraries,点击鼠标右键,选择Buildpath--->Configure Build Path;选择struts类库,点击Edit--->打开Core列表---->反选低版本antlr,选中高版本antlr--->点击Finish;
3、移除tomcat的Web项目,重新添加、启动即可。
备注:如果采用的是直接将包导入wen-inf/lib,只需将antlr低版本替换即可!