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 に答える