java - Axis2:禁用 MustUnderstand header 检查

标签 java web-services soap header axis2

我正在使用 Axis2 框架编写 Web 服务。该服务将充当 DMZ 中的代理。它实际上只是我们本地局域网中真实服务的中继。

该服务使用设置了 mustUnderstand 标志的 header 。但是由于代理服务相当简单,它无法理解这些 header ,它只是应该将请求中继到我们的局域网,在那里可以处理所有 header 。

问题是,Axis2 检查 header 并抛出错误,因为通常读取和理解 header 的模块不存在。

有没有办法将 Axis2 配置为忽略 mustUnderstand 标志?

或者,一种从代码中处理该问题的方法也会受到赞赏。

最佳答案

我们必须做类似的事情,所以这应该让您接近您想要的。

您需要的是一个org.apache.axis2.handlers.AbstractHandler

Invoke(MessageContext msgContext) 函数中,你可以这样做

SOAPHeader header = msgContext.getEnvelope().getHeader();
if( header != null )
{
    Iterator<?> blocks = soapHeader.examineAllHeaderBlocks();
    while( blocks.hasNext() )
    {
        SOAPHeaderBlock block = (SOAPHeaderBlock)blocks.next();
        if( ... some check to see if this is one of your headers ... )
            block.setProcessed();
    }
}

关于java - Axis2:禁用 MustUnderstand header 检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4715027/

相关文章:

java - 存储经度和纬度值

wcf - 在 Visual Studio 中测试 WSDL

soap - 严重: SAAJ0120: Can't add a header when one is already present

java - 远程服务器上的 Soap 调用速度较慢

soap - WildFly 8.2.0,使用反向代理的 JBossWS 生成不正确的 httpssoap :address

java - org.openqa.selenium.ElementNotVisibleException : element not interactable while trying to click an element through selenium

javascript - WEBRTC 可以使用共同浏览功能吗?

java - 如何拆分类以使用多个@Controller

java - Web 服务是否应该同时具有创建和保存 Web 方法?

java - 调用 Web 服务 (SSL) 时出现错误