天天看点

java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I 异常解决

今天在学习hibernate的工程中,使用struts + hibernate 时出现如下的错误:

java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I

org.hibernate.hql.ast.HqlSqlWalker.generateNamedParameter(HqlSqlWalker.java:931)

org.hibernate.hql.antlr.HqlSqlBaseWalker.parameter(HqlSqlBaseWalker.java:4909)

。。。。

上网搜索了一下解决方法,我成功解决的方法是:

首先,出错的原因是 hibernate引入的 antlr-2.7.6.jar 包和 struts 引入的 anltr-2.7.2.jar 包 冲突,

其实就是struts 引入的包版本较低,只需要删除即可,但是不能直接就在项目浏览中直接删除,具体的删除方法如下:

选择windows---preferences---在文本框中搜索struts---选择你使用的struts 版本---选择antlr-2.7.2.jar---Remove---搞定

很多人删除jar包后还是有同样的错误,那是因为没有清理tomcat缓存,直接把tomcat\work\Catalina\localhost下的对应的项目删除

然后在tomcat中移除该项目,再重新部署上去就OK了