繁体   English   中英

如何使用apache.cxf java从响应信封中提取soap标头

[英]How to extract soap header from response Envelope using apache.cxf java

以下是来自服务器的响应:

在此处输入图片说明

我已尝试使用以下代码,但对我不起作用

 public void handleMessage(SoapMessage message) throws Fault {
        SOAPMessage sm = message.getContent(SOAPMessage.class);
        try {
            System.out.println("In side read intercepter..");
            String soapheader=sm.getSOAPPart().getEnvelope().getHeader().getTextContent();
            System.out.println("SOAP Env Header:=>"+soapheader);
        } catch (SOAPException e) {
            throw new Fault(e);
        } 
    }

预期结果:

<e:Header>
        <Friends>
            <friend>
                <Name>Testabc</Name>
                <Age>12121</Age>
                <Phone>Testpqr</Phone>
            </friend>
        </Friends>
</e:Header>

检查下面。 提取响应头。

public class SOAPRSPInt extends AbstractSoapInterceptor {

    private static final Logger log = LoggerFactory.getLogger(SOAPRSPInt.class);

    public SOAPRSPInt() {
        super(Phase.POST_INVOKE);
    }

    @Override
    public void handleMessage(SoapMessage message) throws Fault {
        List<Header> list = message.getHeaders();

        log.debug("SOAPRSPInt message: '{}'", ToStringBuilder.reflectionToString(message),
                ToStringStyle.MULTI_LINE_STYLE);

        String hfrMSG = "SOAPRSPInt message ";
        String resultMSG = "";
        for (Header header : list) {

            hfrMSG += "  '" + header.getName() + "':" + 
                    ((ElementNSImpl) header.getObject()).getTextContent() + "\n";

            if (header.getName().toString().equalsIgnoreCase("{urn:sap-com:document:sap:rfc:functions}ResultStatus")) {
                resultMSG = ((ElementNSImpl) header.getObject()).getTextContent();
            }
        }

        log.debug("SOAPRSPInt headers: '{}'", hfrMSG);

        log.debug("SOAPRSPInt ResultMSG: '{}'", resultMSG);


    }
    
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM