[英]How to remove body element in Soap message from Spring web service
我有以下攔截器,用於修改soap響應的標頭。 我也想清除肥皂反應的內容,但是我找不到有關此操作或解決方法的任何文獻資料。 有什么建議嗎?
public class LisResponseInterceptor extends EndpointInterceptorAdapter {
@Override
public boolean handleResponse(MessageContext messageContext, Object endpoint) {
return true;
}
@Override
public boolean handleRequest(MessageContext messageContext, Object endpoint) {
return true;
}
@Override
public boolean handleFault(MessageContext messageContext, Object endpoint) {
SoapMessage response = (SoapMessage) messageContext.getResponse();
SoapHeader header = response.getSoapHeader();
header.addHeaderElement(new QName("ims","imsx_syncRequestHeaderInfo"));
SoapBody body = response.getSoapBody();
// clear body
return true;
}
}
修復
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
<SOAP-ENV:Header>
<imsx_syncRequestHeaderInfo xmlns="ims"/>
</SOAP-ENV:Header>
<SOAP-ENV:Body/>
</SOAP-ENV:Envelope>
public class LisResponseInterceptor extends EndpointInterceptorAdapter {
@Override
public boolean handleResponse(MessageContext messageContext, Object endpoint) {
return true;
}
@Override
public boolean handleRequest(MessageContext messageContext, Object endpoint) {
return true;
}
@Override
public boolean handleFault(MessageContext messageContext, Object endpoint) {
SoapMessage response = (SoapMessage) messageContext.getResponse();
SoapHeader header = response.getSoapHeader();
header.addHeaderElement(new QName("ims","imsx_syncRequestHeaderInfo"));
SoapBody body = response.getSoapBody();
Transformer identityTransform = null;
try {
identityTransform = TransformerFactory.newInstance().newTransformer();
} catch (TransformerConfigurationException e) {
e.printStackTrace();
} catch (TransformerFactoryConfigurationError e) {
e.printStackTrace();
}
try {
identityTransform.transform(new DOMSource(null), body.getPayloadResult());
} catch (TransformerException e) {
e.printStackTrace();
}
return true;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.