如何配置hibernate以使用apache cxf

时间:2009-07-18 05:53:04

标签: hibernate cxf

对于我的应用程序,我需要使用apache cxf的hibernate。问题是在我将hibernate配置为apache cxf之后,应用程序没有启动。它给出一个错误,说它无法从springframework(我用来创建factorySession)中找到LocalSessionFactoryBean类。 我是apache cxf的新手,所以这可能是我的错误。你们中的任何人都可以告诉我用apache cxf配置hibernate的最佳方法是什么。

提前致谢

3 个答案:

答案 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>

我在这里找到了解决方案:http://mail-archives.apache.org/mod_mbox/cxf-users/200901.mbox/%3C7d456d960901281109t3fbd721egddad5ca072ed5af@mail.gmail.com%3E

答案 1 :(得分:0)

为服务层使用CXF,并在后端保持休眠状态。它不应该真正干扰春天或冬眠正在做什么。

答案 2 :(得分:0)

这看起来像一个类路径问题,在添加CXF时,你以某种方式从类路径中丢失了hibernate jar。那个丢失的bean是一个休眠类。