protected void generateDocument(HttpServletResponse response, Node node) throws Exception { if (node == null) { response.sendError(HttpServletResponse.SC_NOT_FOUND, "Unable to find requested resource"); return; } response.setStatus(200); response.setContentType("text/xml"); new SourceTransformer().toResult(new DOMSource(node), new StreamResult(response.getOutputStream())); }
response.setContentType("text/xml"); try { new SourceTransformer().toResult(new DOMSource((Node) res), new StreamResult(response.getOutputStream())); } catch (TransformerException e) {
public Object unmarshal(MessageExchange exchange, NormalizedMessage message) throws MessagingException { Source content = message.getContent(); if (content != null) { if (content instanceof StreamSource) { StreamSource source = (StreamSource) content; return getXStream().fromXML(source.getReader()); } Document document = null; if (content instanceof DOMSource) { DOMSource domSource = (DOMSource) content; document = (Document) domSource.getNode(); } else { DOMResult result = new DOMResult(); try { transformer.toResult(content, result); } catch (TransformerException e) { throw new MessagingException("Failed to transform content: " + content + " to DOMResult: " + e, e); } document = (Document) result.getNode(); } return getXStream().unmarshal(new DomReader(document)); } return super.unmarshal(exchange, message); }
/** * {@inheritDoc} */ public void exchangeSent(ExchangeEvent event) { try { MessageExchange exchange = event.getExchange(); if (exchange.getStatus() == ExchangeStatus.ACTIVE) { OutputStream os = getOutputStream(exchange); writeFileHeader(os, exchange); NormalizedMessage in = exchange.getMessage("in"); if (StreamSource.class.isAssignableFrom(in.getContent().getClass())) { StreamSource original = (StreamSource) exchange.getMessage("in").getContent(); TeeInputStream tis = new TeeInputStream(original.getInputStream(), os); exchange.getMessage("in").setContent(new StreamSource(tis)); } else { MessageUtil.enableContentRereadability(in); SourceTransformer transformer = new SourceTransformer(); transformer.toResult(in.getContent(), new StreamResult(os)); } } } catch (IOException e) { LOGGER.error("Error occured while storing message {}", event.getExchange().getExchangeId(), e); } catch (TransformerException e) { LOGGER.error("Error occurred while storing message {}", event.getExchange().getExchangeId(), e); } catch (MessagingException e) { LOGGER.error("Error occurred while storing message {}", event.getExchange().getExchangeId(), e); } }
public void createRequest(final MessageExchange exchange, final NormalizedMessage inMsg, final SmxHttpExchange httpExchange) throws Exception { httpExchange.setURL(getLocationUri(exchange, inMsg)); // Temporary fix for bug in jetty-client 6.1.5 // http://fisheye.codehaus.org/browse/jetty-contrib/jetty/trunk/contrib/client/src/main/java/org/mortbay/jetty/client/HttpConnection.java?r1=374&r2=378 httpExchange.addRequestHeader(HttpHeaders.HOST_BUFFER, new ByteArrayBuffer(new URI(getLocationUri(exchange, inMsg)).getHost())); httpExchange.setMethod(getMethod(exchange, inMsg)); httpExchange.setRequestHeader(HttpHeaders.CONTENT_TYPE, getContentType(exchange, inMsg)); if (getContentEncoding() != null) { httpExchange.setRequestHeader(HttpHeaders.CONTENT_ENCODING, getContentEncoding()); } if (getAcceptEncoding() != null) { httpExchange.setRequestHeader(HttpHeaders.ACCEPT_ENCODING, getAcceptEncoding()); } if (getHeaders() != null) { for (Map.Entry<String, String> e : getHeaders().entrySet()) { httpExchange.setRequestHeader(e.getKey(), e.getValue()); } } if (inMsg.getContent() != null) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); OutputStream encodingStream = getRequestEncodingStream(getContentEncoding(), baos); transformer.toResult(inMsg.getContent(), new StreamResult(encodingStream)); encodingStream.close(); httpExchange.setRequestContent(new ByteArrayBuffer(baos.toByteArray())); } }
JDOMResult result = new JDOMResult(); String str = getTransformer().contentToString(me.getFault()); getTransformer().toResult(new StringSource(str), result); Element e = result.getDocument().getRootElement(); e = (Element) e.clone();