Process a MessageContext.
if (context.getPastPivot()) {
// This is a response. Add the response header, if we saw
// the requestHeader
String strVal = (String)context.getProperty(ECHOHEADER_STRING_ID);
if (strVal == null)
return;
Message msg = context.getResponseMessage();
if (msg == null)
return;
SOAPEnvelope env = msg.getSOAPEnvelope();
SOAPHeaderElement header = new SOAPHeaderElement(HEADER_NS,
HEADER_RESNAME,
strVal);
env.addHeader(header);
} else {
// Request. look for the header
Message msg = context.getRequestMessage();
if (msg == null)
throw new AxisFault(Messages.getMessage("noRequest00"));
SOAPEnvelope env = msg.getSOAPEnvelope();
SOAPHeaderElement header = env.getHeaderByName(HEADER_NS,
HEADER_REQNAME);
if (header != null) {
// seems Axis has already ignored any headers not tageted
// at us
String strVal ;
// header.getValue() doesn't seem to be connected to anything
// we always get null.
try {
strVal = (String)header.getValueAsType(Constants.XSD_STRING);
} catch (Exception e) {
throw AxisFault.makeFault(e);
}
context.setProperty(ECHOHEADER_STRING_ID, strVal) ;
header.setProcessed(true);
}
}