![](/img/trans.png)
[英]Java, apache.CXF plugin - Using local WSDL to consume remotely hosted services
[英]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.