2

将使用 Apache CXF 的 RESTFul 服务添加到我的 Spring(和 Wicket)项目后,出现以下异常:

org.apache.cxf.BusException:没有注册命名空间http://apache.org/cxf/binding/jaxrs的绑定工厂。

我在我的 Spring 配置中包含了下面的行,并认为这实际上可以解决我的问题。但它没有。

导入资源="classpath:META-INF/cxf/cxf-extension-jaxrs-binding.xml"

任何有关如何解决此问题的反馈或在哪些领域寻找解决方案的想法将不胜感激。

我正在使用 Spring 3.0.0.RC2 和 Apache CXF 2.2.5。(Maven 依赖于 org.springframework.core、org.springframework.test、org.springframework.orm、org.springframework.web 和 cxf-bundle。)

提前致谢。

4

3 回答 3

2

真的,我通过简单地导入您在主application-context.xml文件中提到的资源解决了这个问题:

<import resource="classpath:META-INF/cxf/cxf-extension-jaxrs-binding.xml" />

我使用 Spring 4.1.0.RELEASE 和 cxf 2.2.3。

过去,当我使用 Spring 3.0 和 Apacy CXF 2.2.2 时,我不需要导入这个文件。但是现在我在主application-context.xml文件中有以下情况:

<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml" />
<import resource="classpath:META-INF/cxf/cxf-extension-jaxrs-binding.xml" />

它对我来说很好。

于 2014-09-24T13:43:00.710 回答
1

通过将 Spring 降级到版本 2.5.6 解决了问题。

于 2009-12-09T21:15:12.963 回答
0

我有同样的问题。我的 pom.xml 中有这三个 jar 作为依赖项

    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-frontend-jaxws</artifactId>
        <version>${cxf.version}</version>
    </dependency>

    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-transports-http</artifactId>
        <version>${cxf.version}</version>
    </dependency>

    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-databinding-aegis</artifactId>
        <version>${cxf.version}</version>
    </dependency>

通过删除这些依赖项解决了我的问题。

于 2012-05-17T11:03:01.847 回答