`
dong_java
  • 浏览: 42101 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

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

阅读更多

 

因客户需求,将原来在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%

 

以上仅供参考!

 

分享到:
评论
3 楼 34176470 2013-04-16  
请问这三种方法里,到底哪种方法是有用的?
weblogic 10.3
2 楼 binbinhu1987 2011-01-17  
您说的方法三,如果是以windows服务启动的话,好像就不起作用了。
1 楼 crazycat03 2010-08-10  
谢谢分享,终于解决了

相关推荐

Global site tag (gtag.js) - Google Analytics