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
分享到:
相关推荐
`fetch_size`设置一次查询返回的记录数量,`batch_size`则是在批量操作时一次提交的SQL语句数量。这两个参数的调整可以帮助减少数据库交互次数,提高应用性能。 完成上述步骤后,应用程序可以通过JNDI查找服务获取...
- **HQL(Hibernate Query Language)**:类似于 SQL 的查询语言,支持面向对象的语法结构。 - **Criteria API**:提供了一种更灵活的构建查询条件的方法,可以动态地添加过滤条件。 ##### 3.3 事务管理 Hibernate...
- **查询语言**: 提供了HQL(Hibernate Query Language)和Criteria API两种查询方式,其中HQL是一种面向对象的查询语言,语法类似于SQL。 - **性能优化**: 支持懒加载、批量插入/更新等特性,可以有效提升应用程序...
这是Hibernate3引入的新特性,对于包含重量级大数据的表字段,这种抽取方式提高了对大字段操作的灵活性,否则加载Tfile对象的结果集时如果总是返回fileContent,这种批量的数据抽取将可以引起数据库的"洪泛效应"。...
正则表达式 lucene索引合并 探查Weblogic JDBC Multipool 问题 struts通用Exception处理 Grails中默认数据库HSQLDB点滴 从request获取各种路径总结 DIV实现的表格自动伸张与收缩 java 邮件...
- **HQL(Hibernate Query Language)**:面向对象的查询语言,类似于SQL,但更侧重于面向对象的操作。 - **Criteria API**:提供了一种面向接口的方式构建查询条件,更加灵活。 - **Native SQL**:直接使用SQL语句...
通常使用JDBC(Java Database Connectivity)API进行数据库连接和SQL查询,或者使用ORM(Object-Relational Mapping)框架如Hibernate或MyBatis简化数据操作。 5. **Session和Cookie管理**:用户登录状态的维持通常...
2. **Java数据库编程** - 深入理解JDBC,包括API,事务处理,批量处理,JDBC的新特性,以及数据连接池技术。 3. **Java Web编程** - 学习Tomcat服务器配置,JSP,Servlet,JavaBean,以及发布和数据源配置。 4. **...
6. 消息队列:JMS(Java Message Service)可用于实现异步处理,如批量库存更新或订单处理,提高系统的响应速度和可扩展性。 7. 容器管理:J2EE应用服务器如Tomcat、GlassFish或WebLogic提供了容器服务,包括事务...
Grails构建于Spring、Hibernate和SiteMesh等成熟框架之上,提供了丰富的功能集,如动态类型检查、自动持久化、内建RESTful Web服务支持等,同时兼容Java EE应用服务器,如WebSphere、WebLogic等。 二、Grails的...
在学生信息管理系统中,可能使用了会话Bean来处理用户的交互逻辑,实体Bean来持久化学生数据,而消息驱动Bean则可能用于异步处理任务,如批量更新或发送通知。 二、数据库设计与连接 学生信息管理系统必然涉及到...
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 以块数据方式...
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 以块数据方式...
5. **消息传递**:银行系统可能采用Java Message Service (JMS) 进行异步通信,处理批量交易或后台任务,提高系统性能。 6. **Web服务**:通过SOAP或RESTful API 提供对外接口,允许其他系统或应用与银行系统进行...
Java 运行在JVM(Java虚拟机)上,提供了跨平台的兼容性,并且有强大的后端框架如Spring、Hibernate等支持数据处理和业务逻辑。 3. **Flex 4 与 Java 集成方式**: - ** BlazeDS / LiveCycle Data Services (LCDS)...
2. 成绩管理:支持批量导入、手动录入和查询成绩,方便教师进行教学评估。 3. 课程管理:管理课程信息,如课程设置、排课、选课等,满足教学需求。 4. 系统权限管理:设定不同角色(如管理员、教师、学生)的权限,...
`engine.js` 是DWR的核心JavaScript库,提供了许多高级功能,如批量调用、错误处理等。 #### 七、util.js 功能 `util.js` 提供了一系列实用工具函数,用于简化前端开发工作,如操作DOM元素、数据绑定等。 #### 八...