前提。要注意加包的顺序……
先加Spring2.0
再加Hibernate3.2
再加Struts2.0
否则,会启不来容器
1.spring我直接用的是myeclipse自带的spring2的lib
Spring2.0 AOP Libraries
Spring2.0 Core Libraries
Spring2.0 Persistence Libraries
Spring2.0 Web Libraries
2.以下hibernate应用所必须的包(可以查看该目录下的_README.txt文件来确定哪些包是必需的):
1. hibernate.jar :hibernate核心包。必需的。
2. antlr.jar :Hibernate使用ANTLR来产生查询分析器,这个类库在运行环境下时也是必需的。
3. cglib.jar :CGLIB库,Hibernate用它来实现PO字节码的动态生成,非常核心的库,必需的jar包。
4. asm.jar :ASM字节码库,cglib.jar包依赖的包。必需的jar包。
5. asm-attrs.jar :ASM字节码库,cglib.jar包依赖的包。必需的jar包。
6. commons-collections.jar :Apache Commons包中的一个,包含了一些Apache开发的集合类,功能比java.util.*强大。必须使用的jar包。
7. commons-logging.jar :Apache Commons包中的一个,包含了日志功能,必须使用的jar包。这个包本身包含了一个Simple Logger,但是功能很弱。在运行的时候它会先在CLASSPATH找log4j,如果有,就使用log4j,如果没有,就找JDK1.4带的 java.util.logging,如果也找不到就用Simple Logger。必需的。
8. ehcache.jar :Hibernate可以使用不同cache缓存工具作为二级缓存。EHCache是缺省的cache缓存工具。如果没有其它的可选缓存工具,则为必需的。
9. jta.jar :JTA规范,当Hibernate使用JTA的时候需要。必需的。
10. dom4j.jar :dom4j是一个Java的XML API,类似于jdom,用来读写XML文件的。Hibernate使用dom4j解析XML配置文件和XML映射元文件。必需的。
11. log4j.jar :日志包,可选的。
3。Struts2.0只需加必须的5个包:
commons-logging-1.1.jar
freemarker-2.3.8.jar
ognl-2.6.11.jar
struts2-core-2.0.11.jar
xwork-2.0.4.jar
4. jar包冲突的解决:
在使用Spring的AOP编程时,会用到这几个lib:
asm-2.2.2.jar
asm-commons-2.2.2.jar
asm-util-2.2.2.jar
Hibernate使用如果lib:
asm.jar
asm-attrs.jar
其中asm-2.2.2.jar与asm.jar存在类上的冲突!!!
使用其中之一或两者都使用,可能会出现如下错误:
java.lang.NoClassDefFoundError: org/objectweb/asm/CodeVisitor
java.lang.NoClassDefFoundError: org/objectweb/asm/commons/EmptyVisitor
java.lang.NoSuchMethodError: org.objectweb.asm.ClassVisitor.visit。。。。。。
解决办法是:
1.去掉类路径上的关于Hibernate的3个lib
asm.jar
asm-attrs.jar
cglib-2.1.3.jar
2.加入Spring中的以下4个lib
asm-2.2.2.jar
asm-commons-2.2.2.jar
asm-util-2.2.2.jar
cglib-nodep-2.1_3.jar
ok, 现在就可以启动了!