1

好吧,不知何故我觉得很愚蠢,一定有一些明显的东西我错过了......

我正在将 Apache CXF (2.7.x) 用于包含检索一些视频数据的方法的宁静服务。一些客户端需要能够处理字节范围的请求。我需要知道的第一件事是客户端实际请求的字节范围,所以我想我会看看 http 标头。据我了解,我需要做的就是将 MessageContext 作为资源放在我的服务类中:

@Resource
MessageContext ctx;

问题是,这失败了,因为没有这样的 bean:

Injection of resource dependencies failed; nested exception is
org.springframework.beans.factory.NoSuchBeanDefinitionException: 
No matching bean of type [org.apache.cxf.jaxrs.ext.MessageContext] found for dependency

在我的春季配置中,我有这些包括:

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

在某处我读到不再需要 cxf-extension-jaxrs-binding.xml ,据我所知,这个文件甚至不存在于我的依赖项中的任何地方。

那么我在这里错过了什么?还是有另一种支持字节范围请求的方法?

4

1 回答 1

0

好的,解决了

MessageContext ctx = new MessageContextImpl(PhaseInterceptorChain.getCurrentMessage());

我不确定这是否是一个好的解决方案,但它确实有效。

于 2013-04-10T18:50:29.280 回答