public void sendError(MessageExchange exchange, Exception error, HttpServletRequest request, HttpServletResponse response) throws Exception { addResponseHeaders(exchange, request, response); response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); OutputStream encodingStream = getResponseEncodingStream(request.getHeader(HttpHeaders.ACCEPT_ENCODING), response.getOutputStream()); XMLStreamWriter writer = transformer.getOutputFactory().createXMLStreamWriter(encodingStream); writer.writeStartDocument(); writer.writeStartElement("error"); StringWriter sw = new StringWriter(); PrintWriter pw = new PrintWriter(sw); error.printStackTrace(pw); pw.close(); writer.writeCData(sw.toString()); writer.writeEndElement(); writer.writeEndDocument(); writer.close(); encodingStream.close(); }
public void sendOut(MessageExchange exchange, NormalizedMessage outMsg, HttpServletRequest request, HttpServletResponse response) throws Exception { addResponseHeaders(exchange, request, response); response.setStatus(HttpServletResponse.SC_OK); XMLStreamReader reader = transformer.toXMLStreamReader(outMsg.getContent()); OutputStream encodingStream = getResponseEncodingStream(request.getHeader(HttpHeaders.ACCEPT_ENCODING), response.getOutputStream()); XMLStreamWriter writer = transformer.getOutputFactory().createXMLStreamWriter(encodingStream); writer.writeStartDocument(); XMLStreamHelper.copy(reader, writer); writer.writeEndDocument(); writer.close(); encodingStream.close(); }
public void sendFault(MessageExchange exchange, Fault fault, HttpServletRequest request, HttpServletResponse response) throws Exception { addResponseHeaders(exchange, request, response); response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR); XMLStreamReader reader = transformer.toXMLStreamReader(fault.getContent()); OutputStream encodingStream = getResponseEncodingStream(request.getHeader(HttpHeaders.ACCEPT_ENCODING), response.getOutputStream()); XMLStreamWriter writer = transformer.getOutputFactory().createXMLStreamWriter(encodingStream); XMLStreamHelper.copy(reader, writer); writer.close(); encodingStream.close(); }
protected Source getContent(MessageContext context, OutMessage message) throws XMLStreamException, IOException, XFireException { ByteArrayOutputStream outStream = new ByteArrayOutputStream(); XMLStreamWriter writer = getTransformer().getOutputFactory() .createXMLStreamWriter(outStream, message.getEncoding()); MessageSerializer serializer = context.getOutMessage().getSerializer(); if (serializer == null) { AbstractSoapBinding binding = (AbstractSoapBinding) context.getBinding(); if (binding == null) { throw new XFireException("Couldn't find the binding!"); } serializer = AbstractSoapBinding.getSerializer(binding.getStyle(), binding.getUse()); } serializer.writeMessage(message, writer, context); writer.close(); outStream.close(); return new StreamSource(new ByteArrayInputStream(outStream.toByteArray())); }
if (out != null) { try { final XMLStreamWriter writer = getTransformer().getOutputFactory() .createXMLStreamWriter(out, message.getEncoding()); message.getSerializer().writeMessage(message, writer, context);