return;
}
try {
SOAPMessageContext smc = context.getMessageContext();
SOAPMessage sm = smc.getMessage();
SOAPPart sp = sm.getSOAPPart();
// gets the SOAP envelope as a JAXP Source object.
Source s = sp.getContent();
ByteArrayInputStream bis = null;
InputSource inputSrc;
if (s instanceof SAXSource) {
inputSrc = SAXSource.sourceToInputSource(s);
} else {
ByteArrayOutputStream bos = new ByteArrayOutputStream();
TransformerFactory tf = TransformerFactory.newInstance();
Transformer xtransformer = tf.newTransformer();
xtransformer.transform(s, new StreamResult(bos));
byte[] buf = bos.toByteArray();
bos.flush();
bos.close();
bis = new ByteArrayInputStream(buf);
inputSrc = new InputSource(bis);
}
// Set up the transformer to process the SAX events generated
// by the last filter in the chain
//inputSrc = SAXSource.sourceToInputSource(s);
SAXSource transformSource = new SAXSource(
((XMLFilter)filterList.getLast()), inputSrc);
StringWriter sw = new StringWriter(STRING_WRITER_INIT_SIZE);
Result r = new StreamResult(sw);
_transformer.transform(transformSource, r);
// get the string from the result.
sw.flush();
sw.close();
if (bis != null)
bis.close();
StringBufferInputStream in = new StringBufferInputStream(
sw.toString());
MessageFactory mFactory = MessageFactory.newInstance();
SOAPMessage resMsg = mFactory.createMessage(null, in);
smc.setMessage(resMsg);
} catch(Exception e) {
_logger.fine("XSLT transformation failed for "
+ context.getFullyQualifiedName());