简体   繁体   中英

Remove soap header from message response

How do I remove a

<soapenv:Header xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">

node from a response message using Java (or web service configuration)?

I don't want to send back user name and password that is displayed in the header. Do I create a class to extend AbstractSoapInterceptor ?

I am using `cxf bus to configure my web service.

I don´t know how are you receiving the SOAP message, but If you can use (or instantiate) a javax.xml.soap.SOAPMessage you remove the header element or attribute that is bothering you:

// Removes the attribute "key" from the message header
message.getSOAPHeader().removeAttribute("key");

Anyway, reusing the same message sounds weird to me, perhaps you should consider creating a new fresh response message:

This statement create a brand new message:

MessageFactory mf = MessageFactory.newInstance();
SOAPMessage message = mf.createMessage(headers, in)

This one, from Mime headers and an inputstream:

MessageFactory mf = MessageFactory.newInstance();
SOAPMessage message = mf.createMessage(headers, in)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

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