簡體   English   中英

HttpServletRequest在Apache cxf攔截器中為空

[英]HttpServletRequest is coming as null in Apache cxf interceptor

我需要將請求及其相應的響應進行匹配,因此我嘗試獲取會話ID以匹配每個請求及其響應。 我在構造函數中使用Phase.PRE_STREAM

我正在嘗試在攔截器中使用HttpServletRequest和會話ID,如下所示

public void handleMessage(Message msg) {
    HttpServletRequest req = (HttpServletRequest)msg.get("HTTP.REQUEST");
}

但是我得到空值。 有人可以告訴我如何在apache cxf中使用HttpServletRequest嗎?

創建客戶端時是否需要設置會話ID。我按如下方式創建客戶端

JAXRSClientFactoryBean sf = new JAXRSClientFactoryBean();
sf.setResourceClass(CustomerService.class);
sf.setAddress("http://localhost:9000/");
BindingFactoryManager manager = sf.getBus().getExtension(BindingFactoryManager.class);
JAXRSBindingFactory factory = new JAXRSBindingFactory();
factory.setBus(sf.getBus());
manager.registerBindingFactory(JAXRSBindingFactory.JAXRS_BINDING_ID, factory);
CustomerService service = sf.create(CustomerService.class);
WebClient wc = sf.createWebClient();

像這樣實現SOAP處理程序:

public class SOAPRequestHandler implements SOAPHandler<SOAPMessageContext>

並像這樣實現您的處理程序:

public boolean handleMessage(SOAPMessageContext msgContext)
{
    HttpServletRequest request = (HttpServletRequest) msgContext.get("HTTP.REQUEST");
...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM