public String getWSReplyToHeaderValue(@Header(HEADERNAME_SOAP_HEADER_LIST) List<SoapHeader> soapHeaders) { if (soapHeaders != null && !soapHeaders.isEmpty()) { for (SoapHeader soapHeader : soapHeaders) { if (soapHeader.getName().getLocalPart().equals(REPLY_TO)) { return ((Element) soapHeader.getObject()).getTextContent(); } } } return ""; } }
public class SessionFaultInterceptor extends AbstractPhaseInterceptor<Message> { public SessionFaultInterceptor() { super(Phase.RECEIVE); } @Override public void handleMessage(Message message) throws Fault { Message in = message.getExchange().getInFaultMessage(); if(in != null){ List<SoapHeader> headers = (List<SoapHeader>) in.get(Header.HEADER_LIST); for(SoapHeader header:headers){ if(header.getObject() instanceof Element){ Element headerElement = (Element)header.getObject(); if("SessionId".equalsIgnoreCase(headerElement.getNodeName())){ if(log.isDebugEnabled()){ log.debug("Update"+headerElement.getNodeName()+" with value "+headerElement.getTextContent()); } break; } } } } } }
@Override public void handleMessage(Message message) { List<SoapHeader> headers = (ArrayList<SoapHeader>) message.get(SOAP_HEADER_KEY); // if the header doesn't exist and we have at least one header to access 'owner document' we can create and add our own MessageID header if(!messageIdHeaderExists(headers) && !headers.isEmpty()) { Element existingHeaderElement = (Element) headers.get(0).getObject(); // use the existing header element to create our own MessageID header with random UUID Element element = existingHeaderElement.getOwnerDocument().createElementNS(NAMESPACE_URI, QUALIFIED_NAME); element.appendChild(existingHeaderElement.getOwnerDocument().createTextNode("uuid:" + UUID.randomUUID().toString())); QName qname = new QName(NAMESPACE_URI, LOCAL_NAME); SoapHeader header = new SoapHeader(qname, element); // by default a SoapHeader is created with 'direction out' header.setDirection(Header.Direction.DIRECTION_IN); headers.add(header); } }
private String getHeaderInputStream(SoapHeader h) { try { return nodeToString((Node) h.getObject()); } catch (XmlTransformationException e) { throw new BadResponseException(format("Error while processing response header [%s]", h.getName()), e); } } }
private void assertSoapHeader(BindingProvider serviceProxy) { List<?> headers = (List<?>) serviceProxy.getResponseContext().get(Header.HEADER_LIST); QName testQName = new QName("http://test", "test"); if (headers != null) { for (Object o : headers) { if (o instanceof SoapHeader) { SoapHeader soapHeader = (SoapHeader) o; QName qName = soapHeader.getName(); if (testQName.getNamespaceURI().equals(qName.getNamespaceURI()) && testQName.getLocalPart().equals(qName.getLocalPart())) { Node returnedContent = (Node) soapHeader.getObject(); assertEquals("test", returnedContent.getTextContent()); return; } } } } fail("Header not found"); }
addPart(root, (NodeList) part); } else if (part instanceof SoapHeader) { addPart(root, (Node) ((SoapHeader) part).getObject());