- 最近的项目使用MyEclipse开发,Web应用服务器由Tomcat6转换为使用weblogic10环境。
WebLogic10安装,配置好用户domain。
启动测试web应用服务没有问题,在部署好实际项目后,启动报错,错误信息为
- ClassNotFoundException: org.hibernate.hql.ast.HqlToken
找到解决方法,将工程里的antlr.jar拷贝到weblogic的wlserver/server/lib文件夹下面,在domains/base_domain/bin里找到startWebLogic.cmd文件,找到
- set CLASSPATH=%SAVE_CLASSPATH%
在下面增加:
- @REM hibernate3
- set PRE_CLASSPATH=%WL_HOME%/server/lib/antlr-2.7.6.jar
- set CLASSPATH=%PRE_CLASSPATH%;%CLASSPATH%
在启动weblogic服务,服务正常启动,错误被排除。
网上许多在hibernate.properties中增加:
- hibernate.query.factory_class属性为org.hibernate.hql.classic.ClassicQueryTranslatorFactory
方法,在执行普通的hql查询没有问题,但无法执行hql批量更新语句。
在配置完成后,从myelicpse中启动weblogic服务,仍然报出
- ClassNotFoundException: org.hibernate.hql.ast.HqlToken
错误,显然修改未被myeclipse识别,启动不是从cmd脚本装载执行,为eclipse行为。
解决方法:
- widows->preferences->MyEclipse->Services->WebLogic->WebLogic10.x->Path
在Prepend to classpath中,增加选项:
- antlr.jar
具体设置与antlr.jar的文件路径相关,即默认此jar的优先级高于weblogic自身的实现jar。
在此启动,从eclipse启动,正常。