在weblogic8.1中使用hibernate3,訪問數據庫之后weblogic就會自動關掉,并且提示如下的錯誤:
CharScanner; panic: ClassNotFoundException: org.hibernate.hql.ast.HqlToken
原因分析:
在hibernate3中需要用到antlr.jar,然而這個包在weblogic.jar中已經包含了antrl類庫,就會產生一些類加載的錯誤,無法找到在war或者ear中的hibernate3.jar。出現這個錯誤之后,antlr會調用System.exit(),這樣weblogic就會中止服務。
解決方法:
在hibernate.properties文件中增加屬性:hibernate.query.factory_class,屬性的值是org.hibernate.hql.classic.ClassicQueryTranslatorFactory,這樣就可以解決問題了。