ClassNotFoundException: org.hibernate.hql.ast.HqlToken

本文解决了Weblogic8.1.1与hibernate3的兼容问题,由于系统自带的antlr.jar版本过低导致ClassNotFoundException异常;同时修复了解压缩zip文件时出现的java.lang.IllegalAccessError错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1   ClassNotFoundException: org.hibernate.hql.ast.HqlToken。此问题属于Weblogic8.1.1与hibernate3兼容上的问题。原因是: 在hibernate3中需要用到antlr.jar,然而这个包在weblogic.jar中已经包含了antrl类库(而且此jar包版本比较低),weblogic启动时默认加载了自己低版本的antrl.jar,导致hibernate无法正常使用。解决办法是下载一个高版本的antlr,我用的是antlr-2.7.5.jar(本人开始曾下载antlr-2.7.5.jar,后来发现无用,所以一定要注意版本号,没试3.X好不好用),替换到${WL_HOME}/server/lib下,

修改startWeblogic.cmd文件

 


@
REM Set SERVER_NAME to the name of the server you wish to start up.

set SERVER_NAME=myserver
set PRE_CLASSPATH=%WL_HOME%/server/lib/antlr.jar;% WL_HOME%/server/lib/ant/ant.jar
set CLASSPATH=%WEBLOGIC_CLASSPATH%;%POINTBASE_CLASSPATH%;%JAVA_HOME%/jre/lib/rt.jar;%WL_HOME%/server/lib/webservices.jar;%CLASSPATH%
set CLASSPATH=%PRE_CLASSPATH%;%CLASSPATH%
@
REM Call WebLogic Server


在上面的代码中
set PRE_CLASSPATH=%WL_HOME%/server/lib/antlr.jar

set CLASSPATH=%PRE_CLASSPATH%;%CLASSPATH%
为新增的,原文件并无此配置。
保存即可,问题解决。

 

  2   java.lang.IllegalAccessError: tried to access field org.apache.tools.zip.ZipOutputStream.EOCD_SIG from class org.apache.tools.zip.ZipFile

      原因:系统用到解压缩zip格式的压缩文件,我使用的是apache.tools里面的zip处理类,在tomcat下运行没有任何问题,在weblogic8.1.1下就不行了。会不会又是因为jar包太旧的原因呢?随后的查找告诉我我的直觉是对的,在${WL_HOME}/server/lib/ant目录下有一个同样的ant.jar( 版本太低),导致解压缩过程无法正常运行。找到了原因所在,就很好解决了。跟上面类似,我用我项目里的ant.jar替换到${WL_HOME}/server/lib/ant目录下,同样修改startWeblogic.cmd文件,(加上上面的修改)修改后的结果如下:

 

@REM Set SERVER_NAME to the name of the server you wish to start up.

set SERVER_NAME=myserver
set PRE_CLASSPATH=%WL_HOME%/server/lib/antlr.jar;% WL_HOME%/server/lib/ant/ant.jar
set CLASSPATH=%WEBLOGIC_CLASSPATH%;%POINTBASE_CLASSPATH%;%JAVA_HOME%/jre/lib/rt.jar;%WL_HOME%/server/lib/webservices.jar;%CLASSPATH%
set CLASSPATH=%PRE_CLASSPATH%;%CLASSPATH%
@
REM Call WebLogic Server

如此,问题解决。

 

    总结一下:两个问题都是有用Weblogic8.1.1里面相应的jar包版本太低了导致功能无法正常使用,解决办法就是更新相应的jar包,修改启动命令,加载更新的jar包。

    可能weblogic10.3.2也有这个问题,采用同样的方法可以解决问题。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值