我发现“Hibernate 不能与 JAX-RS 的参考实现结合使用”。在链接http://lists.jboss.org/pipermail/hibernate-issues/2009-May/015628.html
所以我无法将 JAX-RS (jersey) 与休眠结合起来,有没有人知道解决这个问题的方法?
我发现“Hibernate 不能与 JAX-RS 的参考实现结合使用”。在链接http://lists.jboss.org/pipermail/hibernate-issues/2009-May/015628.html
所以我无法将 JAX-RS (jersey) 与休眠结合起来,有没有人知道解决这个问题的方法?
万恶之源是cglib。将 cglib-2.1.3.jar 替换为cglib-nodep-2.1_3.jar并删除 hibernate 的 asm*.jar 文件。
将Jersey(Java REST框架)与 Hibernate 结合使用需要对 Maven 的pom.xml文件进行一些调整。问题是 Hibernate 使用的与Jersey使用ASM 1.5.3
的不兼容。ASM 3.1
您需要做的是从Hibernate中排除一些传递依赖项:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate</artifactId>
<version>3.2.6.ga</version>
<exclusions>
<exclusion>
<groupId>asm</groupId>
<artifactId>asm</artifactId>
</exclusion>
<exclusion>
<groupId>asm</groupId>
<artifactId>asm-attrs</artifactId>
</exclusion>
<exclusion>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
</exclusion>
</exclusions>
</dependency>
然后,您需要包含正确版本的 ASM:
<dependency>
<groupId>asm</groupId>
<artifactId>asm</artifactId>
<version>3.1</version>
</dependency>
最后,您需要包含一个 nodep 版本的 CGLib,它从 ASM 版本 1.5.3 重新打包类:
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib-nodep</artifactId>
<version>2.1_3</version>
</dependency>
来源:http ://blog.idm.fr/2009/04/jersey-hibernate-conflict.html
解决方案:ASM 3.1 与 HIbernate 和 JAX-RS 的兼容性问题
删除以下 jars
1 asm-attrs.jar
2 asm.jar
3 cglib-2.1.3.jar
添加下面的罐子
1 asm-3.1.jar
2 cglib-nodep-2.1_3.jar