问题是这样的:
hibernate是需要解析xml的,其中3.2版本自带了dom4j-1.6.1.jar,我本机开发也是采用这个包。开发测试一切OK。
我们的应用服务器是weblogic,有些程序是需要自动启动的,就是在weblogic上启动的时候需要自动运行,这其中也用到了xml解析,我们用的是dom4j-full.jar。
问题就出在这2个包上,dom4j-full.jar里面的dom4j版本是1.0,hibernate的是1.6.1。
如果我将1.6版本的先加载,自启动程序就不能运行,整个应用没法使用。
如果我将1.0版本的先加载,程序启动了,我的hibernate程序就出错。
我进行了错误追踪发现:
dom4j-full.jar里面org\jaxen\dom4j\下有一个XPath.class;org\dom4j\下还有一个XPath.class。而
dom4j-1.6.1.jar里面org\dom4j\下有一个XPath.class。
当我将dom4j-full.jar先加载时,hibernate总是去找org\jaxen\dom4j\下的XPath.class,我就天真的将这个XPath.class删掉,然后用新版本的XPath.class代替旧版本的XPath.class然后重新打包发布,怎么都不行。什么变态的替换办法都用到了,还是不行。
java引用类是这样的,如果有相同的类(在不同的jar中),总是返回最先找到的,就导致了如上的问题。
真是没辙呀!
最后我甚至打算去下载hibernate的源码,将引用全部写完整,然后重新编译(我可没这么干过),使它能够找到正确的包。结果发现hiber网站提供的源码下载方式不是cvs的,sourceforge上提供的cvs也超时连不上。好烦,作罢。
看来只有2种出路了:
1、放弃hibernate
2、将dom4j进行升级,涉及到原来的应用改动,工程浩大、极具风险。
分享到:
相关推荐
再来看Hibernate3.2,它是Java世界中广泛使用的ORM解决方案。通过将Java对象映射到数据库表,它可以方便地执行CRUD(创建、读取、更新、删除)操作。Hibernate使用配置文件hibernate.cfg.xml定义数据库连接,实体类...
标题 "some simple demo about hibernate3.2 and spring2.5" 暗示这是一个关于如何集成和使用 Hibernate 3.2 和 Spring 2.5 的简单演示项目。这两个库在Java开发中扮演着重要角色,Hibernate是流行的对象关系映射...
这个jar包是Hibernate3.2版本的核心组件,包含了所有必要的类库,使得开发人员能够在项目中直接引入并使用。 在Java应用程序中,数据库操作通常是繁琐且易出错的,因为需要编写大量的SQL语句和处理结果集。而...
1. 支持JPA:Hibernate 3.2增加了对JSR-220(即JPA 1.0)规范的支持,使得开发者可以选择使用标准的JPA API,也可以继续使用Hibernate的原生API。 2. 查询优化:引入了更高效的查询执行策略,包括延迟加载(Lazy ...
总的来说,这个“hibernate3.2lib及源码jar包纯净版”对于学习和使用Hibernate 3.2版本的开发者非常有用,无论是进行快速开发还是深入研究,都能从中受益。尽管版本相对较旧,但其基本概念和技术原理在现代ORM框架中...
在实际开发中,使用Hibernate 3.2通常会涉及到以下步骤: 1. 配置Hibernate:创建hibernate.cfg.xml文件,配置数据库连接信息。 2. 创建实体类:根据数据库表结构设计对应的Java类,并进行ORM映射配置。 3. 创建...
本资源包含的是Hibernate 3.2版本的完整源代码,这个版本在当时是相当稳定且广泛使用的。 在深入探讨Hibernate 3.2的源码之前,我们需要理解ORM的基本概念。ORM将数据库中的表映射为Java对象,通过对象之间的关系来...
在Hibernate 3.2版本中,这个框架提供了丰富的功能和改进,使得开发者能够更加高效、便捷地处理数据持久化问题。 1. **对象关系映射(ORM)基础** - ORM是将对象模型与关系数据库模型之间建立映射的技术,使得...
Hibernate 3.2 版本作为该系列的重要版本之一,在功能性和性能上都有显著提升,尤其对于那些希望在项目中使用 ORM 技术的开发者来说,是一份不可或缺的参考资料。 #### 二、文档结构 文档按照不同的主题进行了分类...
Hibernate高官谈Hibernate3.2新特性
hibernate3.2的chm格式api手册。
2. **Hibernate3.2.chm**:这是一个帮助文件,包含了Hibernate 3.2版本的API详细说明。CHM(Compiled HTML Help)格式是一种微软的Windows平台下的帮助文件格式,方便用户快速查找和了解各种类、接口和方法。 3. **...
Struts2、Spring2.5和Hibernate3.2是Java Web开发中经典的三大框架,它们的整合使用在过去的许多年里被广泛应用于企业级应用系统。这个完整的项目提供了从开发环境到运行环境的所有必要组件,包括数据库脚本,使得...
通过学习《Hibernate3.2官方中文参考手册》,开发者可以全面掌握Hibernate的使用,从而在Java项目中实现高效、灵活的数据库操作。同时,结合《Hibernate.pdf》这份资料,可以进一步巩固和深化理解,提升实战能力。
2. **配置文件**:Hibernate 使用`hibernate.cfg.xml`作为主配置文件,包含了数据库连接信息、方言选择、缓存设置等。开发者可以根据项目需求进行相应的配置。 3. **SessionFactory**:SessionFactory 是Hibernate...
3. **导入JAR包**:将“整合struts2.1和hibernate3.2的JAR包”解压,将其中的Struts2和Hibernate相关库文件放入项目的lib目录。这可能包括struts2-core、struts2-convention-plugin、struts2-dojo-plugin、hibernate...
Struts2、Spring2.5和Hibernate3.2是经典的Java Web开发框架组合,被称为SSH(Struts2、Spring、Hibernate)集成。这个整合包可能是为了帮助开发者快速搭建基于这些技术的项目环境。 Struts2是MVC(Model-View-...
8. **实体类和注解**:在Hibernate 3.2中,除了传统的XML映射文件,也可以使用Java 5以上的注解来标注实体类,简化配置。 9. **Caching缓存**:Hibernate支持二级缓存,可以集成第三方缓存系统,如 Ehcache,以...
Hibernate 3.2虽然自带了一个连接池,但由于性能和稳定性问题,官方并不推荐使用。它默认的连接池在处理大量请求或需要高容错能力的应用场景下表现不佳,可能存在BUG。尽管如此,配置方法如下: ```xml ...