weblogic10与hibernate3中antlr.jar包冲突问题解决

背景

目前做的这个项目应用运行在weblogic服务器上面,weblogic特有的一些机制使得在websphere、tomcat上能够正常运行的应用,不能在weblogic上运行。本文中提到的weblogic10与hibernate3中antlr.jar包冲突问题就是其中的一种。

现象

在使用hibernate3查询数据库的时候,weblogic服务对应的java进程直接退出,后台报错如下:

CharScanner; panic:       ClassNotFoundException:org.hibernate.hql.ast.HqlToken

原因

在hibernate3中需要用到antlr.jar,然而这个包在weblogic.jar中已经包含了antrl类库,就会产生一些类加载的错误,无法找到在war或者ear中的hibernate3.jar。而出现这个错误之后,antlr会调用System.exit(),这样weblogic就会中止服务。

解决

在weblogic启动脚本startWeblogic.sh中为CLASSPATH变量指定高版本的antlr类库,比如:

CLASSPATH="/opt/antlr-2.7.7.jar:${CLASSPATH}"
这里antlr类库的路径自己指定。至此问题得到解决。

转载于:https://my.oschina.net/psuyun/blog/138234

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值