@Override protected void populateUserDefinedHeader(String headerName, Object headerValue, SoapMessage target) { SoapHeader soapHeader = target.getSoapHeader(); if (headerValue instanceof String) { QName qname = QNameUtils.parseQNameString(headerName); soapHeader.addAttribute(qname, (String) headerValue); } else if (headerValue instanceof Source) { Result result = soapHeader.getResult(); try { this.transformerHelper.transform((Source) headerValue, result); } catch (TransformerException e) { throw new SoapHeaderException( "Could not transform source [" + headerValue + "] to result [" + result + "]", e); } } }
@Override public void doWithMessage(WebServiceMessage webServiceMessage) throws IOException, TransformerException { SoapHeader soapHeader = ((SoapMessage)webServiceMessage).getSoapHeader(); try { JAXBContext context = JAXBContext.newInstance( MessageHeader.class, Security.class ); Marshaller marshaller = context.createMarshaller(); marshaller.marshal( header, soapHeader.getResult() ); marshaller.marshal( security, soapHeader.getResult() ); } catch (JAXBException e) { e.printStackTrace(); } }
getWebServiceTemplate().marshalSendAndReceive("https://soap.endpoint", requestObj, new WebServiceMessageCallback() { public void doWithMessage(WebServiceMessage message) { try { SoapMessage soapMessage = (SoapMessage)message; SoapHeader header = soapMessage.getSoapHeader(); StringSource headerSource = new StringSource("<Security><UsernameToken><SiteId>testlab1</SiteId>"+ "<Password>abcd1234</Password></UsernameToken></Security> "); Transformer transformer = TransformerFactory.newInstance().newTransformer(); transformer.transform(headerSource, header.getResult()); } catch (Exception e) { // exception handling } } });
private void copySoapHeaderData(final org.springframework.ws.soap.SoapMessage soapRequest, final SoapMessage soapMessage, final TransformerFactory transformerFactory) { for (final String headerData : soapMessage.getHeaderData()) { try { final Transformer transformer = transformerFactory.newTransformer(); transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); transformer.transform(new StringSource(headerData), soapRequest.getSoapHeader().getResult()); } catch (final TransformerException e) { throw new CitrusRuntimeException("Failed to write SOAP header content", e); } } }
@Override public void doWithMessage(WebServiceMessage message) { try { // get the header from the SOAP message SoapHeader soapHeader = ((SoapMessage) message).getSoapHeader(); // create the header element ObjectFactory factory = new ObjectFactory(); ListFlightsSoapHeaders listFlightsSoapHeaders = factory.createListFlightsSoapHeaders(); listFlightsSoapHeaders.setClientId("abc123"); JAXBElement<ListFlightsSoapHeaders> headers = factory.createListFlightsSoapHeaders(listFlightsSoapHeaders); // create a marshaller JAXBContext context = JAXBContext.newInstance(ListFlightsSoapHeaders.class); Marshaller marshaller = context.createMarshaller(); // marshal the headers into the specified result marshaller.marshal(headers, soapHeader.getResult()); } catch (Exception e) { LOGGER.error("error during marshalling of the SOAP headers", e); } } });
response.getSoapHeader().getResult());
SoapHeader header = soapMessage.getSoapHeader(); Transformer transformer = TransformerFactory.newInstance().newTransformer(); transformer.transform(getSecurityHeaderSource(), header.getResult()); soapMessage.writeTo(new LoggingOutputStream(log));
/** * Transform the header * @param context * @param inOrOut * @param webServiceMessage */ private void processHeader(CamelContext context, Message inOrOut, WebServiceMessage webServiceMessage) { if (webServiceMessage instanceof SoapMessage) { SoapMessage soapMessage = (SoapMessage) webServiceMessage; try { XsltUriResolver resolver = new XsltUriResolver(context, xslt); Source stylesheetResource = resolver.resolve(xslt, null); TransformerFactory transformerFactory = getTransformerFactory(context); Transformer transformer = transformerFactory.newTransformer(stylesheetResource); addParameters(inOrOut, transformer); transformer.transform(soapMessage.getSoapHeader().getSource(), soapMessage.getSoapHeader().getResult()); } catch (TransformerException e) { throw new RuntimeException("Cannot transform the header of the soap message", e); } } }
protected void serializeContextToSoapHeader(final WebServiceMessage message, final Channel channel) { if (message instanceof SoapMessage) { final SoapMessage soapMessage = (SoapMessage) message; final TraceeFilterConfiguration filterConfiguration = backend.getConfiguration(profile); if (!backend.isEmpty() && filterConfiguration.shouldProcessContext(channel)) { final SoapHeader soapHeader = soapMessage.getSoapHeader(); if (soapHeader != null) { final Map<String, String> context = filterConfiguration.filterDeniedParams(backend.copyToMap(), channel); soapHeaderTransport.renderSoapHeader(context, soapHeader.getResult()); } } } else { logger.info("Message is obviously no soap message - Not instance of Spring-WS SoapMessage"); } } }
transformer.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes"); transformer.transform(new StringSource(headerData), soapMessage.getSoapHeader().getResult()); } catch (TransformerException e) { throw new CitrusRuntimeException("Failed to write SOAP header content", e);
XML_CONVERTER.toResult(soapHeaderSource, header.getResult());