Aceder JAX-RS (CXF) MessageContext classe de serviço do lado de fora na mola (2,5)

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

  •  05-07-2019
  •  | 
  •  

Pergunta

Estou tentando acessar o MessageContext (ou WebServiceContext) em um aspecto a ter acesso ao HTTPServletRequest para fins de registro. Eu gostaria de injetar o contexto como eu fiz para a primavera-ws mas eu não encontrei uma maneira de fazê-lo. Aqui está o que eu usei para a primavera-ws:

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

Eu não posso usar a anotação @Resource no WebServiceContext campo / método como eu não estou no serviço (tentou de qualquer maneira sem sorte). Instanciar o WebServiceContext (ie novo WebServiceContextImpl ()) não quer trabalhar, mas supostamente deveria, pois isso apenas wraps um ThreadLocal. Eu também tentei importar cxf-extensão-jaxws.xml e fiação do feijão com id org.apache.cxf.jaxws.context.WebServiceContextImpl sem sorte (não é nulo, mas não detém qualquer coisa) Alguma idéia?

graças

Foi útil?

Solução

Na configuração primavera (injectado em mensagem ou mesmo tipo Mapa)

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

então em receber classe

request = (HttpServletRequest) currentMessage.get ( "HTTP.REQUEST");

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top