Apache CXF和Spring依赖项冲突异常

时间:2013-08-14 13:45:16

标签: spring maven cxf

我想将CXF和Spring集成到一个简单的JAX-WS中。下面是maven pom文件。

<dependencies>
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-frontend-jaxws</artifactId>
        <version>2.7.6</version>
    </dependency>
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-transports-http</artifactId>
        <version>2.7.6</version>
    </dependency>
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-transports-http-jetty</artifactId>
        <version>2.7.6</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>3.2.3.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>3.2.3.RELEASE</version>
    </dependency>
    <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-webapp</artifactId>
    </dependency>
</dependencies>

当我使用maven命令运行jetty时。它有一些例外:

spring java.lang.NoSuchMethodError: org.springframework.core.convert.converter.ConverterRegistry.addConverter(Ljava/lang/Class;Ljava/lang/Class;Lorg/springframework/core/convert/converter/Converter;)V

似乎问题是CXF和Spring依赖问题。当我转到目标文件夹并发现有两个版本的Spring与我指定的版本和版本CXF依赖。 3.0.7?

如果我将弹簧版本更改为较低版本并且可以正常工作。

我只是想知道如果我还想使用最新版本的Spring,有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:0)

我想我找出原因。我还需要把spring-core作为maven依赖。因为异常中的转换器属于核心依赖。

所以当maven jetty运行时,有两个版本的spring,spring-core使用的是3.0.7,它是使用CXF,另一个是3.2.3,这是我指定的。

我需要在项目中与spring版本保持一致。