在我的项目中,我同时使用 Hibernate 和 Jersey
http://www.hildeberto.com/2008/05/hibernate-and-jersey-conflict-on.html
Jersey 使用 ASM 库,Hibernate 也使用该库,但版本不同。Hibernate 使用 1.5.3 版本,Jersey 使用 3.5.1。很大的不同!我们不能只是删除旧版本并把新版本放在那里,因为它们在架构上是不同的。版本 1.5.3 有一个“attrs”包,而 3.5.1 没有它,而是一个“签名”包。cglib 包需要 ASM 包,它是 Hibernate 库的一部分。如果我们删除该包,Jersey 将正常工作,但 Hibernate 将停止工作。要解决此冲突,请使用 cglib-nodep.jar 而不是 cglib.jar,并将 ASM 版本 3.x 与 Jersey 保持一致。cglib-nodep.jar 包含 cglib.jar 所需的一些 ASM 类,更改包名以避免任何类冲突。
但是在包括asm-3.1.jar
, asm-attrs-2.2.3.jar
, asm-commons-3.1.jar
,之后asm-util-3.1.jar
,cglib-nodep-2.1_3sources.jar
我收到了错误:
如果我放置cglib 2.1.3
:
java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(Z)V
at net.sf.cglib.core.DebuggingClassWriter.<init>(DebuggingClassWriter.java:47)
at net.sf.cglib.core.DefaultGeneratorStrategy.getClassWriter(DefaultGeneratorStrategy.java:30)
如果我放置cglib-nodep-2.1_3-sources.jar
:
java.lang.ClassNotFoundException: net.sf.cglib.core.KeyFactory
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1701)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1546)
请任何人列出解决此问题所需的 jar 文件。