当前位置: 代码迷 >> Web前端 >> 转 weblogic10.3 org.hibernate.hql.ast.HqlToken报错有关问题
  详细解决方案

转 weblogic10.3 org.hibernate.hql.ast.HqlToken报错有关问题

热度:879   发布时间:2012-10-24 14:15:58.0
转 weblogic10.3 org.hibernate.hql.ast.HqlToken报错问题

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

文章分类:Java编程

?

因客户需求,将原来在tomcat 6的 struts2+hibernate3+spring2.5下的应用移植到weblogic10.3上, 在运行

weblogic10.3时发现原来在tomcat6运行妥妥的应用不好用了,在开发工具中发现抛异常:

org.springframework.orm.hibernate3.HibernateQueryException: ClassNotFoundException:

org.hibernate.hql.ast.HqlToken

?? ? ? ?由是在网上开始海找试过好多也走了不少弯路,终于解决了。

?

我的解决方法是

问题就是jar包冲突hibernate3需要antlr-2.7.6.jar的支持,而在weblogic10.3我的安装目录

“D:\bea\modules”下有两个jar和工程里的jar(antlr-2.7.6.jar)包冲突将weblogic10.3中jar包删除

(com.bea.core.antlr_2.7.7.jar、com.bea.core.antlr.runtime_2.7.7.jar)就可以了。

?

因每个人的问题和使用的版本不同解决方法也有所不同,所以把网上其它解决方法也整理出来了,供大家参考。

解决方法一 : 如果你使用的是hibernate没用spring那你需要在hibernate.properties中设置 否则在spring中设置hibernate查询翻译器属性 <prop key="hibernate.query.factory_class"> org.hibernate.hql.ast.ASTQueryTranslatorFactory </prop> <prop key="hibernate.query.factory_class"> org.hibernate.hql.classic.ClassicQueryTranslatorFactory </prop>两者区别网上好多谷歌一下。

解决方法二 : 设置在“D:\bea\wlserver_10.3\server\lib\consoleapp\webapp\WEB-INF”下的weblogic.xml文件 weblogic8.0解决这个问题是改更weblogic.xml把一个属性更为true <container-descriptor> ... <prefer-web-inf-classes>true</prefer-web-inf-classes> ... </container-descriptor> 解决方法三 : 设置我的目录“D:\bea\wlserver_10.3\server\lib”放入antlr-2.7.6.jar且在weblogic.jar前面 设置我的目录“D:\bea\user_projects\domains\base_domain\bin”下

setDomainEnv.cmd或startWebLogic.cmd文件 打开找到set CLASSPATH 上面加

set PRE_CLASSPATH=% DOMAIN_HOME%\lib\antlr-2.7.6.jar;

下而加set CLASSPATH=%PRE_CLASSPATH%;%SAVE_CLASSPATH%ATH%

?

以上仅供参考!

?

  相关解决方案