Springのサービスクラス外部のjax-rs(CXF)MessageContextへのアクセス(2.5)

StackOverflow https://stackoverflow.com/questions/1600747

  •  05-07-2019
  •  | 
  •  

質問

ロギングの目的でHTTPServletRequestにアクセスするために、アスペクトのMessageContext(またはWebServiceContext)にアクセスしようとしています。 spring-wsの場合のようにコンテキストを注入したいのですが、その方法は見つかりませんでした。 spring-wsで使用したものは次のとおりです。

<beans:bean id="transportContext" class="org.springframework.ws.transport.context.TransportContextHolder" factory-method="getTransportContext" scope="request">
 <aop:scoped-proxy/>
 </beans:bean>

WebServiceContextのフィールド/メソッドで@Resourceアノテーションを使用できないのは、サービスに参加していないためです(とにかく運がありませんでした)。 WebServiceContextのインスタンス化(つまり、新しいWebServiceContextImpl())も機能しませんが、これはスレッドローカルをラップするだけであるはずです。また、cxf-extension-jaxws.xmlをインポートし、ID org.apache.cxf.jaxws.context.WebServiceContextImplでBeanを運なく配線しようとしました(nullではありませんが、何も保持していません) >

ありがとう

役に立ちましたか?

解決

spring configで(メッセージまたはマップタイプとしても挿入)

    <beans:bean id="currentMessage" class="org.apache.cxf.phase.PhaseInterceptorChain" factory-method="getCurrentMessage" scope="request">
<aop:scoped-proxy/>
    </beans:bean> 

受信クラスで

request =(HttpServletRequest)currentMessage.get(&quot; HTTP.REQUEST&quot;);

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top