Я не могу получить мыльные заголовки, передаваемые как HttpPost.addHeader ("SOAPAction", "anystring") от клиента на стороне сервера.
Ниже приведен пример запроса на мыло
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservices.org.com/" xmlns:inp="http://www.sterlingcommerce.com/documentation/reservation/input">
<soapenv:Header />
<soapenv:Body>
<web:reservation>
<env>
<loginId>admin</loginId>
<password>password</password>
</env>
<input>
<!--input goes here -->
</input>
</web:reservation>
</soapenv:Body>
</soapenv:Envelope>
Ниже приведены фрагменты кода, которые я пробовал.
snippet1:
public class SoapHandler implements SOAPHandler<SOAPMessageContext>{
public boolean handleMessage(SOAPMessageContext messagecontext) {
SOAPMessage soapMsg = messagecontext.getMessage();
System.out.println("***HeaderList****");
SOAPHeader soapHeader = soapMsg.getSOAPHeader();
Iterator headerElements = soapHeader.examineAllHeaderElements();
if(headerElements!=null){
while (headerElements.hasNext()) {
SOAPHeaderElement element = (SOAPHeaderElement) headerElements.next();
System.out.println("soapHeader." + element.getElementName().getLocalName() + " = " + element.getValue());
}
}
}
}
фрагмент 2:
public class SoapHandler implements SOAPHandler<SOAPMessageContext>{
public boolean handleMessage(SOAPMessageContext messagecontext) {
SOAPMessage soapMsg = messagecontext.getMessage();
Message message = ((WrappedMessageContext) messagecontext).getWrappedMessage();
List<org.apache.cxf.headers.Header> headers = CastUtils.cast((List<?>) message.get(org.apache.cxf.headers.Header.HEADER_LIST));
if (headers != null) {
for (org.apache.cxf.headers.Header header : headers) {
System.out.println(((Element)header.getObject()).getTextContent());
}
}
}
}
Здесь ожидается получение заголовка SOAPAction и его значения.
Мое требование - удалить мыло из заголовка после его получения, но я не смог как-то найти / получить этот дополнительный заголовок.
Пожалуйста, помогите мне в этом.
Спасибо.