环境:myeclipse 10.6, weblogic 10.3.4 ,hibernate 3.6
情况:执行hibernate查询语句时出现ClassNotFoundException: org.hibernate.hql.ast.HqlToken
原因:在Hibernate3.0 以上版本采用了新的基于ANTLR的HQL/SQL查询翻译器,需要用到antlr,然而这个包在weblogic.jar中已经包含了较早版本的antrl包,不能兼容,就会产生一些类加载的错误,出现ClassNotFoundException: org.hibernate.hql.ast.HqlToken的异常。
解决办法:
在weblogic 配置 【paths】项中 添加antlr-2.7.7.jar,该jar包应该位于引用weblogic.jar之前,使启动时不再加载weblogic中的低版本的antlr