您的位置:首页 > 其它

Weblogic ClassNotFoundException: org.hibernate.hql.ast.HqlToken

2013-03-23 14:55 751 查看

Weblogic中hibernate3异常:

ClassNotFoundException: org.hibernate.hql.ast.HqlToken

Hibernate3.0 采用新的基于ANTLR的HQL/SQL查询翻译器,在Hibernate的配置文件中,
hibernate.query.factory_class属性用来选择查询翻译器。

1、Hibernate3.0的查询翻译器:

hibernate.query.factory_class= org.hibernate.hql.ast.ASTQueryTranslatorFactory

2、Hibernate2.1的查询翻译器

hibernate.query.factory_class= org.hibernate.hql.classic.ClassicQueryTranslatorFactory

3.0的批量更新和删除功能,
(1)不能解释批量更新的语句,当使用的时候出现了不支持条件输入中文的情况。

(2)可以支持输入中文,但没法解释批量更新语句了

hibernate3中需要用到antlr,然而这个包在weblogic.jar中已经包含了antrl类库,
就会产生一些类加载的错误,无法找到在war或者ear中的hibernate3.jar。

出现这个错误之后,antlr会调用System.exit(),这样weblogic就会中止服务。

解决方法也很简单,就是添加
<property name="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</property>

<?xml version='1.0' encoding='UTF-8'?>

<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<!-- Generated by MyEclipse Hibernate Tools. -->

<hibernate-configuration>

<session-factory>

<property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>

<property name="connection.url">jdbc:oracle:thin:@localhost:1521:mydb</property>

<property name="connection.username">xxxx</property>

<property name="connection.password">xxxx</property>

<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>

<property name="hibernate.query.factory_class">org.hibernate.hql.classic.ClassicQueryTranslatorFactory</property>

<mapping resource="xxxxx.hbm.xml" />

</session-factory>

</hibernate-configuration>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐