【问题标题】:How to extract soap header from response Envelope using apache.cxf java如何使用apache.cxf java从响应信封中提取soap标头
【发布时间】:2019-05-28 09:47:56
【问题描述】:

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

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

 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>

【问题讨论】:

    标签: java soap cxf


    【解决方案1】:

    检查下面。 提取响应的标头。

    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);
    
    
        }
        
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多