8 assembly hibernate jax-rs jersey
我发现"Hibernate不能与JAX-RS的参考实现相结合." 链接http://lists.jboss.org/pipermail/hibernate-issues/2009-May/015628.html
所以我无法将JAX-RS(泽西)和hibernate结合起来,有人知道这方面的解决方法吗?
将Jersey(Java REST框架)与Hibernate结合使用需要对Maven的pom.xml文件进行一些调整.问题是Hibernate使用的ASM 1.5.3是与JerseyASM 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>
Run Code Online (Sandbox Code Playgroud)
然后,您需要包含正确版本的ASM:
<dependency>
<groupId>asm</groupId>
<artifactId>asm</artifactId>
<version>3.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
最后,您需要包含一个CGLib的nodep版本,它从ASM版本1.5.3重新打包类:
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib-nodep</artifactId>
<version>2.1_3</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
来源:http://blog.idm.fr/2009/04/jersey-hibernate-conflict.html
升级到 Hibernate 3.3.2 或更高版本。
如果您点击生成该消息的错误报告的链接,则表明最新版本的 Hibernate(自 3.3.2 起)使用不同的字节码操作包(Javassist),这消除了导致问题的 ASM 冲突。