`

weblogic处理hibernate批量查询

 
阅读更多
tomcat 6的 struts2+hibernate3+spring2.5下的应用移植到weblogic10.3上,在运行

weblogic10.3时发现,原来在tomcat6运行妥妥的应用不好用了,在开发工具中发现抛异常:

org.springframework.orm.hibernate3.HibernateQueryException: 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就会中止服务。 解决方法一:是在hibernate.properties文件中增加属性:hibernate.query.factory_class,属性的值是org.hibernate.hql.classic.ClassicQueryTranslatorFactory,这样就可以解决问题了。

  <!-- <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”下





我 按照上面的方法都不太可行

我的解决方法是:

问题就是jar包冲突hibernate3需要antlr-2.7.6.jar的支持,而在weblogic10.3我的安装目录

“D:/bea/modules”下有两个jar (com.bea.core.antlr_2.7.7.jar、com.bea.core.antlr.runtime_2.7.7.jar)和工程里的jar(antlr-2.7.6.jar)包冲突

将com.bea.core.antlr.runtime_2.7.7.jar删除,把antlr-2.7.6.jar 放到D:/bea/modules下

在web-inf之下建立weblogic.xml


<!DOCTYPE weblogic-web-app PUBLIC "-//BEA Systems, Inc.//DTD Web Application 8.1//EN" "weblogic810-web-jar.dtd">  <weblogic-web-app>  <container-descriptor>   <prefer-web-inf-classes>true</prefer-web-inf-classes> </container-descriptor> </weblogic-web-app>







setDomainEnv.cmd或startWebLogic.cmd文件打开找到set CLASSPATH上面加

set PRE_CLASSPATH=% DOMAIN_HOME%/lib/antlr-2.7.6.jar;

下而加set CLASSPATH=%PRE_CLASSPATH%;%SAVE_CLASSPATH%ATH%


详细请参考:http://blog.csdn.net/xiashan17/article/details/6274599

分享到:
评论

相关推荐

    Weblogic上配置Hibernate为JNDI

    `fetch_size`设置一次查询返回的记录数量,`batch_size`则是在批量操作时一次提交的SQL语句数量。这两个参数的调整可以帮助减少数据库交互次数,提高应用性能。 完成上述步骤后,应用程序可以通过JNDI查找服务获取...

    hibernate学习文档

    - **HQL(Hibernate Query Language)**:类似于 SQL 的查询语言,支持面向对象的语法结构。 - **Criteria API**:提供了一种更灵活的构建查询条件的方法,可以动态地添加过滤条件。 ##### 3.3 事务管理 Hibernate...

    javaee三大框架SSH(spring,hibernate,struts)学习

    - **查询语言**: 提供了HQL(Hibernate Query Language)和Criteria API两种查询方式,其中HQL是一种面向对象的查询语言,语法类似于SQL。 - **性能优化**: 支持懒加载、批量插入/更新等特性,可以有效提升应用程序...

    ssh(structs,spring,hibernate)框架中的上传下载

    这是Hibernate3引入的新特性,对于包含重量级大数据的表字段,这种抽取方式提高了对大字段操作的灵活性,否则加载Tfile对象的结果集时如果总是返回fileContent,这种批量的数据抽取将可以引起数据库的"洪泛效应"。...

    java文集

    正则表达式 lucene索引合并 探查Weblogic JDBC Multipool 问题 struts通用Exception处理 Grails中默认数据库HSQLDB点滴 从request获取各种路径总结 DIV实现的表格自动伸张与收缩 java 邮件...

    框架面试笔试问答题.docx

    - **HQL(Hibernate Query Language)**:面向对象的查询语言,类似于SQL,但更侧重于面向对象的操作。 - **Criteria API**:提供了一种面向接口的方式构建查询条件,更加灵活。 - **Native SQL**:直接使用SQL语句...

    基于J2EE实现的商品管理系统

    通常使用JDBC(Java Database Connectivity)API进行数据库连接和SQL查询,或者使用ORM(Object-Relational Mapping)框架如Hibernate或MyBatis简化数据操作。 5. **Session和Cookie管理**:用户登录状态的维持通常...

    java课程纲目[归类].pdf

    2. **Java数据库编程** - 深入理解JDBC,包括API,事务处理,批量处理,JDBC的新特性,以及数据连接池技术。 3. **Java Web编程** - 学习Tomcat服务器配置,JSP,Servlet,JavaBean,以及发布和数据源配置。 4. **...

    J2EE课程设计--仓库管理系统.rar

    6. 消息队列:JMS(Java Message Service)可用于实现异步处理,如批量库存更新或订单处理,提高系统的响应速度和可扩展性。 7. 容器管理:J2EE应用服务器如Tomcat、GlassFish或WebLogic提供了容器服务,包括事务...

    Grails入门指南

    Grails构建于Spring、Hibernate和SiteMesh等成熟框架之上,提供了丰富的功能集,如动态类型检查、自动持久化、内建RESTful Web服务支持等,同时兼容Java EE应用服务器,如WebSphere、WebLogic等。 二、Grails的...

    java学生信息管理系统

    在学生信息管理系统中,可能使用了会话Bean来处理用户的交互逻辑,实体Bean来持久化学生数据,而消息驱动Bean则可能用于异步处理任务,如批量更新或发送通知。 二、数据库设计与连接 学生信息管理系统必然涉及到...

    Spring.3.x企业应用开发实战(完整版).part2

    11.2.3 批量更改数据 11.2.4 查询数据 11.2.5 查询单值数据 11.2.6 调用存储过程 11.3 BLOB/CLOB类型数据的操作 11.3.1 如何获取本地数据连接 11.3.2 相关的操作接口 11.3.3 插入Lob类型的数据 11.3.4 以块数据方式...

    Spring3.x企业应用开发实战(完整版) part1

    11.2.3 批量更改数据 11.2.4 查询数据 11.2.5 查询单值数据 11.2.6 调用存储过程 11.3 BLOB/CLOB类型数据的操作 11.3.1 如何获取本地数据连接 11.3.2 相关的操作接口 11.3.3 插入Lob类型的数据 11.3.4 以块数据方式...

    某银行系统的j2ee资源代码1

    5. **消息传递**:银行系统可能采用Java Message Service (JMS) 进行异步通信,处理批量交易或后台任务,提高系统性能。 6. **Web服务**:通过SOAP或RESTful API 提供对外接口,允许其他系统或应用与银行系统进行...

    flex4集成java

    Java 运行在JVM(Java虚拟机)上,提供了跨平台的兼容性,并且有强大的后端框架如Spring、Hibernate等支持数据处理和业务逻辑。 3. **Flex 4 与 Java 集成方式**: - ** BlazeDS / LiveCycle Data Services (LCDS)...

    基于j2ee学籍管理系统

    2. 成绩管理:支持批量导入、手动录入和查询成绩,方便教师进行教学评估。 3. 课程管理:管理课程信息,如课程设置、排课、选课等,满足教学需求。 4. 系统权限管理:设定不同角色(如管理员、教师、学生)的权限,...

    DWR中文文档.pdf

    `engine.js` 是DWR的核心JavaScript库,提供了许多高级功能,如批量调用、错误处理等。 #### 七、util.js 功能 `util.js` 提供了一系列实用工具函数,用于简化前端开发工作,如操作DOM元素、数据绑定等。 #### 八...

Global site tag (gtag.js) - Google Analytics