现在的位置: 首页 > 综合 > 正文

java.lang.NoSuchMethodError: antlr.collections.AST.getLine()解决方法

2013年06月05日 ⁄ 综合 ⁄ 共 696字 ⁄ 字号 评论关闭

配置struts2+hibernate,错误java.lang.NoSuchMethodError: antlr.collections.AST.getLine()解决方法

由于是用myeclipse自己导的包,出现了包版本冲突问题,问题出在struts包里面有也有个antlr_XXX.jar,与hibernate包里面的冲突了,hibernate的版本高

SSH组合完成后,执行hibernate的HQL查询时,报错:
java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I
看来是antlr这个语法解析包出错
因为Struts自带的antlr-2.7.2.jar,比Hibernate3.3自带的antlr-2.7.6.jar的版本要低,故要删除前一个低版本的,struts1.3 和2.1都带有antlr-2.7.2.jar,要把版本低的清除掉。

由于myeclipse 添加的struts性能 不是放在工程lib下的,而是myeclipse自带的,所以删除比较麻烦。

我是直接到workspace中查找下antlr-2.7.2.jar的包,删除之,之后编译时就会自动找到Hibernate3.3自带的antlr-2.7.6.jar。

楼下回复方法:

删了之后又出现了,又找到了一个新办法
具体方法:
在MyEclipse下,windows-->preferences-->在文本框中搜索struts2-->选择antlr2.7.2-->remove
在tomcat该应用的目录WEB-INF\lib 删除 antlr2.7.2.jar

问题解决,感谢博主

抱歉!评论已关闭.