ss2h的jar包作用和冲突及环境搭建

来源:互联网 发布:韦德数据统计 编辑:程序博客网 时间:2024/06/05 00:15

前提。要注意加包的顺序……
先加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, 现在就可以启动了!