public OMElement processDocument(InputStream inputStream,
String contentType,
MessageContext msgContext) throws AxisFault {
Parameter wrapperParam = msgContext.getAxisService().getParameter(BaseConstants.WRAPPER_PARAM);
QName wrapperQName;
if (wrapperParam != null) {
wrapperQName = BaseUtils.getQNameFromString(wrapperParam.getValue());
} else {
wrapperQName = BaseConstants.DEFAULT_BINARY_WRAPPER;
}
OMFactory factory = OMAbstractFactory.getOMFactory();
OMElement wrapper = factory.createOMElement(wrapperQName, null);
byte[] msgBytes;
try {
msgBytes = IOUtils.toByteArray(inputStream);
} catch (IOException ex) {
throw new AxisFault("Unable to read message payload", ex);
}
DataHandler dataHandler = new DataHandler(new ByteArrayDataSource(msgBytes));
wrapper.addChild(factory.createOMText(dataHandler, true));
msgContext.setDoingMTOM(true);
return wrapper;
}
|