解决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就翻译不了了,我以前写的东西已经说明过为何了。

相关文章
相关标签/搜索