ClassNotFoundException: org.hibernate.hql.ast.HqlToken解决之道

http://www.blogjava.net/SkyWinder/articles/40306.html
拥有Hibernate3.jar的应用,被部署到weblogic8.1上后,抛出异常 CharScanner; panic: ClassNotFoundException: org.hibernate.hql.ast.HqlToken。
   解决方法:在hibernate.properties上,或是在spring的conext xml中,加上一个属性hibernate.query.factory_class,值为org.hibernate.hql.classic.ClassicQueryTranslatorFactory。

   原因:从网上获知,weblogic.jar中已经有了一个antlr.jar的版本,导致应用中hibernate3.jar中用到的antlr.jar不能找到,导致异常。



官方解决:
官方的解决办法是在web-inf下创建一个weblogic.xml,配置
<weblogic-web-app>
<container-descriptor>
<prefer-web-inf-classes>true</prefer-web-inf-classes>
</container-descriptor>
</weblogic-web-app>

让weblogic在冲突情况下,默认采用web应用下的lib,而不采用它本身classpath下的jar包即可.

猜你喜欢

转载自panyongzheng.iteye.com/blog/1405448