??xml version="1.0" encoding="utf-8" standalone="yes"?>org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/config/spring/applicationContext.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Could not instantiate bean class [org.springframework.orm.hibernate3.LocalSessionFactoryBean]: Constructor threw exception; nested exception is java.lang.NoClassDefFoundError: org/dom4j/DocumentException
2.
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/config/spring/applicationContext.xml]: Initialization of bean failed; nested exception is java.lang.NoClassDefFoundError: javax/transaction/TransactionManager
]]>
下蝲HibernateQ例?.0.3E_版本Q解压羃Q可以看C个hibernate2.jar和lib目录下有22个jar包:
hibernate2.jar:
Hibernate的库Q没有什么可说的Q必M用的jar?/font>
cglib-asm.jar:
CGLIB库,Hibernate用它来实现PO字节码的动态生成,非常核心的库Q必M用的jar?/font>
dom4j.jar:
dom4j是一个Java的XML APIQ类gjdomQ用来读写XML文g的。dom4j是一个非帔R怼U的Java XML APIQ具有性能优异、功能强大和极端易用使用的特点,同时它也是一个开放源代码的YӞ可以在SourceForge上找到它。在IBM developerWorks上面可以扑ֈ一文章,对主的Java XML APIq行的性能、功能和易用性的评测Qdom4j无论在那个方面都是非常出色的。我早在近两年之前开始用dom4jQ直到现在。如今你可以看到? 来越多的Java软g都在使用dom4j来读写XMLQ特别值得一提的是连Sun的JAXM也在用dom4j。这是必M用的jar包, Hibernate用它来读写配|文件?/font>
odmg.jar:
ODMG是一个ORM的规范,Hibernate实现了ODMG规范Q这是一个核心的库,必须使用的jar包?/font>
commons-collections.jarQ?/font>
Apache Commons包中的一个,包含了一些Apache开发的集合c,功能比java.util.*强大。必M用的jar包?/font>
commons-beanutils.jarQ?/font>
Apache Commons包中的一个,包含了一些Bean工具cȝ。必M用的jar包?/font>
commons-lang.jar:
Apache Commons包中的一个,包含了一些数据类型工LQ是java.lang.*的扩展。必M用的jar包?/font>
commons-logging.jar:
Apache Commons包中的一个,包含了日志功能,必须使用的jar包。这个包本n包含了一个Simple LoggerQ但是功能很弱。在q行的时候它会先在CLASSPATH找log4jQ如果有Q就使用log4jQ如果没有,找JDK1.4带的 java.util.loggingQ如果也找不到就用Simple Logger。commons-logging.jar的出现是一个历史的的遗留的遗憾Q当初Apache极力游说Sun把log4j加入JDK1.4Q? 然而JDK1.4目组已经接近发布JDK1.4产品的时间了Q因此拒l了Apache的要求,使用自己的java.util.loggingQ这个包 的功能比log4j差的很远Q性能也一般。后来Apache开发出来了commons-logging.jar用来兼容两个logger。因此用 commons-logging.jar写的logE序Q底层的Logger是可以切换的Q你可以选择log4jQjava.util.logging? 者它自带的Simple Logger。不q我仍然强烈使用log4jQ因为log4j性能很高Qlog输出信息旉几乎{于System.outQ而处理一条logq_只需 ?us。你可以在Hibernate的src目录下找到Hibernate已经Z准备好了的log4j的配|文Ӟ你只需要到Apache |站M载log4j可以了。commons-logging.jar也是必须的jar包?/font>
使用Hibernate必须的jar包就是以上的q几个,剩下的都是可选的?/font>
ant.jar:
Ant~译工具的jar包,用来~译Hibernate源代码的。如果你不准备修改和~译Hibernate源代码,那么没有什么用Q可选的jar?/font>
optional.jarQ?/font>
Ant的一个辅助包?/font>
c3p0.jarQ?/font>
C3PO是一个数据库q接池,Hibernate可以配置Z用C3POq接池。如果你准备用这个连接池Q就需要这个jar包?/font>
proxool.jarQ?/font>
也是一个连接池Q同上?/font>
commons-pool.jar, commons-dbcp.jar:
DBCP数据库连接池QApache的Jakartal织开发的QTomcat4的连接池也是DBCP?/font>
实际上Hibernate自己也实C一个非帔R常简单的数据库连接池Q加上上? 3个,你实际上可以在Hibernate上选择4U不同的数据库连接池Q选择哪一个看个h的偏好,不过DBCP可能更通用一些。另外强调一点,如果? EJB中用HibernateQ一定要用App Server的连接池Q不要用以上4U连接池Q否则容器管理事务不起作用?/font>
connector.jar:
JCA 规范Q如果你在App Server上把Hibernate配置为Connector的话Q就需要这个jar。不q实际上一般App Server肯定会带上这个包Q所以实际上是多余的包?/font>
jaas.jar:
JAAS是用来进行权限验证的Q已l包含在JDK1.4里面了。所以实际上是多余的包?/font>
jcs.jarQ?/font>
如果你准备在Hibernate中用JCS的话Q那么必d括它Q否则就不用?/font>
JDBC2_0-stdext.jar:
JDBC2.0的扩展包Q一般来说数据库q接池会用上它。不qApp Server都会带上Q所以也是多余的?/font>
jta.jarQ?/font>
JTA规范Q当Hibernate使用JTA的时候需要,不过App Server都会带上Q所以也是多余的?/font>
junit.jar:
Junit包,当你q行Hibernate自带的测试代码的时候需要,否则׃用?/font>
xalan.jar, xerces.jar, xml-apis.jar:
Xerces是XML解析器,Xalan是格式化器,xml-apis实际上是 JAXP。一般App Server都会带上QJDK1.4也包含了解析器,不过不是XercesQ是CrimsonQ效率比较差Q不qHibernate用XML只不q是d 配置文gQ性能没什么紧要的Q所以也是多余的?/font>