在soapMessageContext中获取“HttpServletRequest” - Axis Handler

Posted

技术标签:

【中文标题】在soapMessageContext中获取“HttpServletRequest” - Axis Handler【英文标题】:Getting "HttpServletRequest" in soapMessageContext - Axis Handler 【发布时间】:2011-12-01 06:09:24 【问题描述】:

我试图在 AxisHandler 的“handleMessage”方法中获取“HttpServletRequest”。 我的 AxisHandler 实现了“SOAPHandler”,如下所示。

我需要在“InBoundDirection”中获取“HttpServletRequest”,但它返回“null”。

如何在 SOAPHandler 的“InBoundDirection”中获取“HttpServletRequest”?

谢谢你..

@Override
public boolean handleMessage(SOAPMessageContext soapMessageContext) 
    boolean direction = ((Boolean) soapMessageContext.get(SOAPMessageContext.MESSAGE_OUTBOUND_PROPERTY)).booleanValue();        
    if (direction) 
        System.out.println("direction = outbound");
     else 
        System.out.println("direction = inbound");
        HttpServletRequest servletReq=(HttpServletRequest) soapMessageContext.get(MessageContext.SERVLET_REQUEST);
        // BECAUSE servletReq is null the following line returns a "nullPointerException"
        System.out.println(servletReq.getRemoteHost()); 
    
    return true;

【问题讨论】:

【参考方案1】:

请参阅此帖子 jax ws getting client ip 以获得很好的解释。看起来如果想要拥有一个通用处理程序(在我的情况下是提取客户端证书),则需要为 EE 容器托管的 Web 服务和 SE 托管的容器实现相同的逻辑。

【讨论】:

以上是关于在soapMessageContext中获取“HttpServletRequest” - Axis Handler的主要内容,如果未能解决你的问题,请参考以下文章

如何通过HttpPost从服务器上获得一个sessionid

在 Windows 中获取文件的编码

获取浏览器的Cookie

js 获取昨天,今天,本周,上周,季度等时间范围(封装的js)

在 android 中获取和解析 CSV 文件

axios在componentDidMount中获取数据后如何拍摄jest snapshot?