簡體   English   中英

如何從CXF輸出獲取攔截器的會話

[英]How to get session from cxf out interceptor

我有一個綁定到接收階段的cxf“在攔截器中”,該階段將數據存儲到會話中。

MyCxfInInterceptor(在攔截器中)

public class MyCxfInInterceptor extends AbstractSoapInterceptor {
    public MyCxfInInterceptor() {
        super(Phase.RECEIVE);
    }
    public void handleMessage(SoapMessage message) throws Fault {
        HttpServletRequest request (HttpServletRequest)message.get(AbstractHTTPDestination.HTTP_REQUEST);
        HttpSession session = request.getSession(true);

        session.setAttribute("foo","bar");
    }
}

MyCxfOutInterceptor(Out攔截器)

public class MyCxfOutInterceptor extends AbstractSoapInterceptor {
      public MyCxfOutInterceptor() {
        super(Phase.SEND);
      }


      public void handleMessage(SoapMessage message) throws Fault {
        //TODO Retrieve data from session.
      }
    }

我想將這些數據檢索到我的“攔截器”中。 我該怎么做 ?

我不知道如何從HttpServletResponse檢索會話。 可能該會話不再可用。 還有其他方法可以存儲和檢索數據嗎?

春天會有所幫助嗎?

您可以使用Exchange ,在進出攔截器之間交換數據

在攔截器中

public void handleMessage(SoapMessage message) throws Fault {
  message.getExchange().put("foo","bar");
}

攔截器

public void handleMessage(SoapMessage message) throws Fault {
  Object obj = message.getExchange().get("foo");
 }

暫無
暫無

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

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