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()));
}