之前公司的项目都是部署在tomcat或was上面,运行的好好的。现在客户要求把项目部署在weblogic11g上面,结果报错了:
org.hibernate.QueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken
后来发现是weblogic自带的antlr.jar和hibernate3.0依赖的jar包冲突了,试了很多方法,感觉下面的方法比较靠谱点。下面是我的解决方法:
一、找到weblogic的启动文件(我的weblogic是部署在Linux系统上面),在/opt/Oracle/Middleware/user_projects/domains/csb_domain/bin路径下的startWebLogic.sh,打开添加启动默认加载的antlr.jar。如下两行:
ANT_CLASSPATH="${WL_HOME}/server/lib/antlr-2.7.7.jar"
CLASSPATH="${ANT_CLASSPATH}:${CLASSPATH}"
二、把你项目依赖的antlr-2.7.7.jar添加到ANT_CLASSPATH配置的路径下,如/opt/Oracle/Middleware/wlserver_10.3/server/lib,然后重启系统一般就可以了,如果还不行的话,重启一下weblogic。
希望对你们有所帮助