項目運行的時候,提示找不到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就翻譯不了了,我以前寫的東西已經說明過爲何了。