public void send(MessageContext context, OutMessage message) throws XFireException { if (message.getUri().equals(Channel.BACKCHANNEL_URI)) { final OutputStream out = (OutputStream) context.getProperty(Channel.BACKCHANNEL_URI); if (out != null) { final XMLStreamWriter writer = STAXUtils.createXMLStreamWriter(out, message.getEncoding(), context); message.getSerializer().writeMessage(message, writer, context); } else { throw new XFireRuntimeException("No backchannel exists for message"); } try { Attachments atts = message.getAttachments(); if (atts != null && atts.size() > 0) { writeAttachmentBody(context, message); // TODO response.setContentType(atts.getContentType()); atts.write(out); } else { // TODO response.setContentType(getSoapMimeType(message)); writeWithoutAttachments(context, message, out); } } catch (IOException e) { throw new XFireException("Couldn't send message.", e); } } else { try { sendViaClient(context, message); } catch (Exception e) { throw new XFireException("Failed to Send via MuleUniversalChannel: " + e.getMessage(), e); } } }
void writeWithoutAttachments(MessageContext context, OutMessage message, OutputStream out) throws XFireException { XMLStreamWriter writer = STAXUtils.createXMLStreamWriter(out, message.getEncoding(), context); message.getSerializer().writeMessage(message, writer, context); try { writer.flush(); } catch (XMLStreamException e) { logger.error(e); throw new XFireException("Couldn't send message.", e); } }
public void run() { try { final XMLStreamWriter writer = STAXUtils.createXMLStreamWriter(stream, message.getEncoding(), context); message.getSerializer().writeMessage(message, writer, context); writer.close(); stream.close(); } catch (Exception e) { throw new XFireRuntimeException("Couldn't write stream.", e); } finally { semaphore.release(); } }
public void send(final MessageContext context, final OutMessage message) throws XFireException { if (message.getUri().equals(Channel.BACKCHANNEL_URI)) { final OutputStream out = (OutputStream) context.getProperty(Channel.BACKCHANNEL_URI); if (out != null) { final XMLStreamWriter writer = STAXUtils.createXMLStreamWriter(out, message.getEncoding(), context); message.getSerializer().writeMessage(message, writer, context); } else { MessageContext oldContext = (MessageContext) context.getProperty(OLD_CONTEXT); sendViaNewChannel(context, oldContext, message, (String) context.getProperty(SENDER_URI)); } } else { MessageContext receivingContext = new MessageContext(); receivingContext.setXFire(context.getXFire()); receivingContext.setService(getService(context.getXFire(), message.getUri())); receivingContext.setProperty(OLD_CONTEXT, context); receivingContext.setProperty(SENDER_URI, getUri()); receivingContext.setSession(session); sendViaNewChannel(context, receivingContext, message, message.getUri()); } }