本人在進行SSH框架整合時,遇到自寫的HQL查詢的DAO出現java.lang.NoSuchMethodError: antlr.collections.AST.getLine()錯誤,分析後發現是Struts和Hibernate的Jar包裏antlr2.7.2 與 antlr2.7.7 衝突所致。java
SSH版本信息:web
Spring3.1.一、Struts2.一、Hibernate4.1.4tomcat
解決方案:框架
一、找到hibernate的antlr2.7.7,複製到struts的core包下;ui
二、在web工程下選擇已經導入的struts的Libraries,點擊鼠標右鍵,選擇Buildpath--->Configure Build Path;選擇struts類庫,點擊Edit--->打開Core列表---->反選低版本antlr,選中高版本antlr--->點擊Finish;spa
三、移除tomcat的Web項目,從新添加、啓動便可。hibernate
備註:若是採用的是直接將包導入wen-inf/lib,只需將antlr低版本替換便可!get