Доступ к jax-rs (CXF) MessageContext вне класса обслуживания в Spring (2.5)

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

  •  05-07-2019
  •  | 
  •  

Вопрос

Я пытаюсь получить доступ к MessageContext (или WebServiceContext) в аспекте, чтобы получить доступ к HTTPServletRequest для целей ведения журнала. Я хотел бы добавить контекст, как я сделал для 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>

Я не могу использовать аннотацию @Resource в поле / методе WebServiceContext, так как я не в службе (пробовал в любом случае безуспешно). Создание экземпляра WebServiceContext (т. Е. Нового WebServiceContextImpl ()) также не работает, но предположительно должно работать, поскольку это просто оборачивает локальный поток. Я также попытался импортировать cxf-extension-jaxws.xml и связать компонент с идентификатором org.apache.cxf.jaxws.context.WebServiceContextImpl без удачи (он не нулевой, но ничего не содержит). Есть идеи?

спасибо

Это было полезно?

Решение

В весеннем конфиге (вводится как сообщение или даже тип карты)

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

затем в классе приема

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top