
解决Weblogic12c中Hibernate HqlToken异常的方法

"在WebLogic 12环境下遇到Hibernate查询时出现org.hibernate.hql.ast.HqlToken异常的解决方案"
在WebLogic 12版本中,如果你的项目使用了Hibernate作为持久层框架,可能会遇到一个特定的问题:在执行HQL查询时抛出`org.hibernate.hql.ast.HqlToken`异常。这个异常通常意味着在解析HQL查询语句时遇到了不兼容或错误的情况。WebLogic服务器自身携带的ANTLR库(com.bea.core.antlr.runtime_2.7.7.0.jar)可能与Hibernate 3.x版本所依赖的ANTLR版本不匹配,从而导致此问题。
为了解决这个问题,你需要采取以下步骤:
1. **替换ANTLR库**:首先,找到Hibernate 3.x版本中所需的ANTLR-2.7.6.jar文件。这个文件可以从Hibernate的发布包中获取,或者直接从官方网站下载。将这个新的ANTLR版本复制到一个可访问的目录,例如`/opt/Oracle/Middleware/test/antlr-2.7.6.jar`。
2. **更新WebLogic类路径**:接下来,你需要修改WebLogic服务器的启动脚本,以便在启动时将新的ANTLR库包含在类路径中。打开`${DOMAIN_HOME}/bin/startWebLogic.sh`脚本,并添加以下行:
```
export WEB_ANTLR="/opt/Oracle/Middleware/test/antlr-2.7.6.jar"
export CLASSPATH="${WEB_ANTLR}:${SAVE_CLASSPATH}"
```
这将确保在启动WebLogic服务器时,新的ANTLR库优先于服务器自带的库被加载。
3. **重启WebLogic**:完成上述配置更改后,重启WebLogic服务器,让新的设置生效。通过运行`${DOMAIN_HOME}/bin/startWebLogic.sh`命令来启动服务。
4. **测试修复**:启动后,尝试再次执行之前导致异常的HQL查询。如果一切顺利,你应该不会再遇到`org.hibernate.hql.ast.HqlToken`异常。
需要注意的是,如果你的环境中还有其他组件,比如JSF 1.2、RichFaces 3.2,它们可能也有对ANTLR版本的要求。在这种情况下,确保所有组件都与所选择的ANTLR版本兼容是至关重要的。在某些情况下,可能需要对其他组件的类路径进行类似调整,或者寻找兼容的替代方案。
此外,这个解决方案是针对WebLogic 12c、JSF 1.2、RichFaces 3.2、Hibernate 3.2.5.ga以及SUSE 11操作系统的。如果你的环境配置不同,可能需要根据实际的软件版本和配置进行相应的调整。在升级或迁移过程中,确保所有依赖项的兼容性是避免此类问题的关键。
相关推荐










samtribiani
- 粉丝: 7
最新资源
- VC++6.0网络编程核心技术详解
- Oracle驱动安装包下载及使用指南
- C#入门经典第三版完整答案代码解析
- Java基础面试精讲:字符串与集合容器处理技巧
- 探索灰色预测模型:高效计算与应用工具
- 唐朔飞版计算机组成原理课件精要
- 河南农大校友开发的VB学生成绩管理系统新版介绍
- 精选26个高效网页播放器及其使用指南
- 掌握LaTeX:全面的数学公式编辑手册
- MFC案例源代码:学习资源的宝库
- 五大数据结构课程设计案例分析
- 探索史上最小的VRMPVOL_CN.iso文件
- 游戏掉线自动关机工具:节省电费保睡眠
- Java面试笔试题精选与答案解析
- LineCount:高效代码行数及注释统计工具
- 深入理解《Absolute C++》第二版核心概念
- JS+DIV+CSS精选脚本:网页设计资源大合集
- GDI+透明时钟实现:VC初学者指南
- 局域网聊天与文件传输的飞鸽传书源代码
- Java API 5.0中文版技术手册介绍
- 精美Flash相册源码下载,创意设计必备
- Lee Brimelow讲解Visual Studio与Blend制作视频剪辑反射效果
- 星际争霸Javascript 中文注释版教程
- Smarty模板使用教程完整版下载