【问题标题】:How to get session from cxf out interceptor如何从 cxf out 拦截器获取会话
【发布时间】:2017-02-13 16:58:21
【问题描述】:

我有一个绑定到接收阶段的 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(输出拦截器)

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


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

我想将这些数据检索到我的“输出拦截器”中。我该怎么做?

我不知道如何从 HttpServletResponse 中检索会话。也许会话不再可用。有没有其他方法来存储和检索数据?

春天会有帮助吗?

【问题讨论】:

    标签: java spring session cxf


    【解决方案1】:

    您可以使用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");
     }
    

    【讨论】:

      猜你喜欢
      • 2011-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-02
      • 2023-04-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多