1

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

提前致谢

4

3 回答 3

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

于 2009-11-18T18:04:28.893 回答
0

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

于 2009-08-05T09:18:32.033 回答
0

这看起来确实像一个类路径问题,在添加 CXF 时,您不知何故从类路径中丢失了休眠 jar。那个缺失的 bean 是一个休眠类。

于 2009-11-12T01:26:44.130 回答