解決Weblogic與Hibernate的jar衝突

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

相關文章
相關標籤/搜索