项目运行的时候,提示找不到org.hibernate.hql.ast.HqlToken这个类,可我jar包明明有啊,上网一搜,原来是Weblogic11已经带了antlr,因此没有用到了hibernate3相关的antlr-2.7.5H3.jar包,因此只要把antlr-2.7.5H3.jar的classpath提到weblogic.jar的前面就OK了web
Linux中:dom
拷贝antlr-2.7.5H3.jar 到 ${WL_HOME}/server/lib,而后打开你domain的startWeblogic.sh文件spa
将 CLASSPATH=${CLASSPATH}${CLASSPATHSEP}${MEDREC_WEBLOGIC_CLASSPATH}hibernate
修改成翻译
export HIBERNATE_CLASSPATH="${WL_HOME}/server/lib/antlr-2.7.5H3.jar"
CLASSPATH=${HIBERNATE_CLASSPATH}${CLASSPATH}${CLASSPATHSEP}${MEDREC_WEBLOGIC_CLASSPATH}server
就ok了xml
Windows中的写法有点不同,大同小异,写法以下blog
set HIBERNATE_CLASSPATH=%WL_HOME%\server\lib\antlr-2.7.5H3.jar;
set CLASSPATH=%HIBERNATE_CLASSPATH%;%CLASSPATH%;%MEDREC_WEBLOGIC_CLASSPATH%ast
网上还有一种作法就是在hibernate.cfg.xml里面加上class
<prop key="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</prop>
这个属性,同窗们,千万不可啊,由于这样好多HQL就翻译不了了,我以前写的东西已经说明过为何了。