顾乔芝士网

持续更新的前后端开发技术栈

weblogic部署web应用后查询时报错问题

ASTQueryTranslatorFactory weblogic10.3
org.hibernate.hql.ast.HqlToken报错问题


【LINUX机器】测试环境机器坏了,需要重新搭建一套测试环境。

搭建完成,发布完应用后,点击某些页面的时候,会出现
org.hibernate.hql.ast.HqlToken,网上查了下说是weblogic的jar包和应用里面的jar包冲突了。

weblogic用的jar包是【
com.bea.core.antlr_2.7.7.jar和
com.bea.core.antlr.runtime_2.7.7.jar】

web应用里面使用的jar包是【antlr_2.7.6.jar】

spring 里面配置的sessionfactory的属性如下

<!-- hibernate 查询语言为3.X版本 -->

<prop key="hibernate.query.factory_class">org.hibernate.hql.ast.ASTQueryTranslatorFactory</prop>

<!-- hibernate 查询语言为2.X版本 -->

<!--<prop key="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</prop>-->

网上查了下有下面几种解决方法:

1.需要把weblogic安装目录下的modules目录下的
com.bea.core.antlr_2.7.7.jar和
com.bea.core.antlr.runtime_2.7.7.jar,两个包删除,但是把这两个包删除后,weblogic启动不起来了,失败。

2.只删除
com.bea.core.antlr_2.7.7.jar包,留着
com.bea.core.antlr.runtime_2.7.7.jar包,把应用里面的antlr_2.7.6.jar,复制到modules目录下,修改了
user_projects/domain/base_domain/bin/startWeblogic.sh文件中将原来的

CLASSPATH="${SAVE_CLASSPATH}"

SAVE_CLASSPATH=""

修改为下面的

PRE_CLASSPATH=""~/web/WEB-INFO/lib/antlr_2.7.6.jar"",

CLASSPATH="${SAVE_CLASSPATH}"

CLASSPATH="${PRE_CLASSPATH}:${CLASSPATH}"

SAVE_CLASSPATH=""

重启weblogic还是不行。

3.删除
com.bea.core.antlr_2.7.7.jar包,留着
com.bea.core.antlr.runtime_2.7.7.jar包,把应用里面的antlr_2.7.6.jar,复制到modules目录下修改了第2部中的startWeblogic.sh文件后【具体这个需不需要修改startWeblogic.sh还没有测试,可以先只修改一下setDomainEnv.sh这个文件先试下】, 又继续把setDomainEnv.sh文件也修改了以下,具体修改如下

在文件的大约第66行注释的下面,添加

PRE_CLASSPATH="~/web/WEB-INFO/lib/antlr_2.7.6.jar"

export PRE_CLASSPATH

重启服务,问题解决。


仅供参考,这个问题搞了3天没弄好,早上再查的时候终于碰到合适的解决办法了,赞

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言