@Override public void doWithMessage(WebServiceMessage responseMessage) throws IOException, TransformerException { SoapMessage soapMessage = (SoapMessage) responseMessage; if (ExchangeHelper.isOutCapable(exchange)) { exchange.getOut().copyFromWithNewBody(exchange.getIn(), soapMessage.getPayloadSource()); populateHeaderAndAttachmentsFromResponse(exchange.getOut(), soapMessage); } else { exchange.getIn().setBody(soapMessage.getPayloadSource()); populateHeaderAndAttachmentsFromResponse(exchange.getIn(), soapMessage); } } });
@Override public void process(Exchange exchange) throws Exception { final Message message = exchange.getIn(); final Object body = message.getBody(); final ObjectNode rootNode = Json.copyObjectMapperConfiguration().createObjectNode(); if (!parameters.isEmpty()) { final ObjectNode parametersNode = rootNode.putObject("parameters"); for (String parameter : parameters) { parametersNode.put(parameter, message.getHeader(parameter, String.class)); } } if (body instanceof String) { final String string = (String) body; if (ObjectHelper.isNotEmpty(string)) { rootNode.set("body", READER.readValue(string)); } } else if (body instanceof InputStream) { try (InputStream stream = (InputStream) body) { if (stream.available() > 0) { rootNode.set("body", READER.readValue(stream)); } } } else if (body != null) { rootNode.putPOJO("body", body); } final String newBody = Json.toString(rootNode); final Message replacement = new DefaultMessage(exchange.getContext()); replacement.copyFromWithNewBody(message, newBody); ExchangeHelper.replaceMessage(exchange, replacement, false); }