ClassNotFoundException: org.hibernate.hql.ast.HqlToken
在weblogic下部署应用后,启动应用程序报错ClassNotFoundException: org.hibernate.hql.ast.HqlToken.
从错误看是找不到org.hibernate.hql.ast.HqlToken这个类,找不到这个类是应为Hibernate3.0 采用新的基于ANTLR的HQL/SQL查询翻译器,需要用到antlr,而这个包在weblogic.jar中已经包含了较早版本的antrl包.所以会提示找不到类.
从上面的分析可以得到解决办法,
一种是找到Hibernate3.0需要的antlr-2.7.6rc1.jar ,把antlr-2.7.6rc1.jar 放到 jdk的jre/lib/ext目录
一种是比较懒的办法,不去找antlr-2.7.6rc1.jar,而是使用Hibernate2.1的查询翻译器,在配置文件中配置:
hibernate.query.factory_class= org.hibernate.hql.classic.ClassicQueryTranslatorFactory
参考: