我找到了真正的异常信息为: ClassNotFoundException: org.hibernate.hql.ast.HqlToken
在weblogic下使用hibernate3,会抛出此异常,因为:
解决方法为:
在hibernate3的配置文件中加入:
<property name="hibernate.query.factory_class">
<value>org.hibernate.hql.classic.ClassicQueryTranslatorFactory</value>
</property>
或者是:
在weblogic下使用hibernate3,会抛出此异常,因为:
在hibernate3中需要用到antlr.jar,然而这个包在weblogic.jar中已经包含了antrl类库,就会产生一些类加载的错误,无法找到在war或者ear中的hibernate3.jar。
解决方法为:
在hibernate3的配置文件中加入:
<property name="hibernate.query.factory_class">
<value>org.hibernate.hql.classic.ClassicQueryTranslatorFactory</value>
</property>
或者是:
<prop key="hibernate.query.factory_class">
org.hibernate.hql.classic.ClassicQueryTranslatorFactory
</prop>
org.hibernate.hql.classic.ClassicQueryTranslatorFactory
</prop>