对于我的应用程序,我需要使用apache cxf的hibernate。问题是在我将hibernate配置为apache cxf之后,应用程序没有启动。它给出一个错误,说它无法从springframework(我用来创建factorySession)中找到LocalSessionFactoryBean类。 我是apache cxf的新手,所以这可能是我的错误。你们中的任何人都可以告诉我用apache cxf配置hibernate的最佳方法是什么。
提前致谢
答案 0 :(得分:2)
Mickael Istria写道: 您的问题可能与“asm”依赖项的冲突有关。确实, CXF使用比hibernate更新的“cglib”版本,它本身使用更新版本 “asm”,因此在将它们集成在一起时有时会引起问题 (例如NoSuchMethodError等异常) 我使用的解决方法是替换旧的cglib(及其依赖项) 你的类路径中的cglib-nodep.jar,对Hibernate来说没问题,但没有 需要一个旧的“asm”。
如果您使用Maven,此示例应该可以帮助您了解如何解决 这样的冲突:
<dependency>
<!-- This artifacts adds hibernate as a dependency -->
<groupId>org.ow2.bonita</groupId>
<artifactId>bonita-server</artifactId>
<version>4.0.1</version>
<scope>test</scope>
<exclusions>
<exclusion> <!-- Then remove the dependency to cglib to avoid
conflicts with CXF's asm -->
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Replaced old cglib by cglib-nodep -->
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib-nodep</artifactId>
<version>2.1_3</version>
</dependency>
答案 1 :(得分:0)
为服务层使用CXF,并在后端保持休眠状态。它不应该真正干扰春天或冬眠正在做什么。
答案 2 :(得分:0)
这看起来像一个类路径问题,在添加CXF时,你以某种方式从类路径中丢失了hibernate jar。那个丢失的bean是一个休眠类。