我使用的是Apache CXF 2.4.0版。我正在尝试创建一个Restful服务。
以下示例适用于2.3.4,但在2.4.0中不起作用。我应该在beans配置文件中做些什么?
当我在bean配置文件中包含以下xml行时。
<import resource="classpath:META-INF/cxf/cxf-extension-jaxrs-binding.xml" />
我收到以下stacktrace错误:
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: 配置问题:失败 从URL导入bean定义 地点 [类路径:META-INF / CXF / CXF延伸-JAXRS-binding.xml]
攻击资源:ServletContext 资源[/WEB-INF/beans.xml];嵌套 例外是 org.springframework.beans.factory.BeanDefinitionStoreException:
从中解析XML文档的IOException 类路径资源 [META-INF / CXF / CXF延伸-JAXRS-binding.xml]; 嵌套异常是 java.io.FileNotFoundException:class 路径资源 [META-INF / CXF / CXF延伸-JAXRS-binding.xml] 不能打开,因为它没有 存在于 org.springframework.beans.factory.parsing.FailFastProblemReporter.error(FailFastProblemReporter.java:68)
我的POM依赖关系如下。这适用于2.3.4但不适用于2.4.0。有什么建议?该xml扩展行是否已弃用或包含在另一个jar中?
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-bundle-jaxrs</artifactId>
<version>2.3.4</version>
<exclusions>
<exclusion>
<groupId>org.eclipse.jetty</groupId>
<artifactId>jetty-server</artifactId>
</exclusion>
</exclusions>
</dependency>
答案 0 :(得分:30)
不再需要了。使用2.4.x,不再需要大多数META-INF / cxf文件,可以将其删除。真的,cxf.xml是唯一需要的。
答案 1 :(得分:1)
这是关于在版本2.4及更高版本中将cxf嵌入弹簧内的CXF信息。 http://cxf.apache.org/docs/embedding-cxf-inside-spring.html