【WebLogic】weblogic与Antlr包冲突

1.weblogic与Antlr包冲突

weblogic优先加载web应用lib下的包 antlrcaused by: org.springframework.orm.hibernate3.HibernateQueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken

报错截图

2.报错日志

caused by: org.springframework.orm.hibernate3.HibernateQueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken
Caused by: org.hibernate.QueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken
问题原因:
使用Hibernate的工程部署到WebLogic下时,经常会出现ClassNotFoundException:org.hibernate.hql.ast.HqlToken的问题,出现该问题的主要原因在于WebLogic已经集成了antlr.jar包,在使用Hibernate时,会先加载其自身所带的antlr.jar包,会和Hibernate捆绑的antlr-2.7.6.jar冲突,导致上述错误。(https://blog.csdn.net/z69183787/article/details/38297909)
解决方法:
(1)我本次用到的方案
startWebLogic.sh(bin目录下)下添加两行,然后将应用lib目录下的antlr-2.7.5.jar复制到域路径下的lib里${DOMAIN_HOME}/lib/antlr-2.7.5.jar,重启解决

TEMP_CLASS_PATH=" D O M A I N H O M E / l i b / a n t l r − 2.7.5. j a r " C L A S S P A T H = " {DOMAIN_HOME}/lib/antlr-2.7.5.jar" CLASSPATH=" DOMAINHOME/lib/antlr2.7.5.jar"CLASSPATH="{TEMP_CLASS_PATH}😒{SAVE_CLASSPATH}"
部分代码

JAVA_OPTIONS="${SAVE_JAVA_OPTIONS}"

SAVE_JAVA_OPTIONS=""

TEMP_CLASS_PATH="${DOMAIN_HOME}/lib/antlr-2.7.5.jar"

CLASSPATH="${TEMP_CLASS_PATH}:${SAVE_CLASSPATH}"

SAVE_CLASSPATH=""

(2)同事方案
添加到:domains/irmsone_domain/bin/setDomainEnv.sh文件最后一行
HPRE_CLASSPATH="/appfiles/app/weblogic/wlserver_10.3/server/lib/antlr-2.7.5.jar"
CLASSPATH=" H P R E C L A S S P A T H : {HPRE_CLASSPATH}: HPRECLASSPATH:{CLASSPATH}"
(3)网上参考方案(https://blog.csdn.net/zhousanlong/article/details/16884907)
web-inf下放置weblogic.xml,内容如下
方式一:优先加载所有包

<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-web-app
xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd
http://xmlns.oracle.com/weblogic/weblogic-web-app
http://xmlns.oracle.com/weblogic/weblogic-web-app/1.2/weblogic-web-app.xsd">
	<wls:container-descriptor>
        <wls:prefer-web-inf-classes>true</wls:prefer-web-inf-classes>
    </wls:container-descriptor>
</wls:weblogic-web-app>

方式二:优先加载部分类

<?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-web-app
xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd
http://xmlns.oracle.com/weblogic/weblogic-web-app
http://xmlns.oracle.com/weblogic/weblogic-web-app/1.2/weblogic-web-app.xsd">
	<wls:container-descriptor>
        
        <wls:prefer-application-packages>
        	<wls:package-name>com.oracle.*</wls:package-name>
        </wls:prefer-application-packages>
    </wls:container-descriptor>
    
</wls:weblogic-web-app>


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

实施工程师木易

感谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值