今天在學習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了