if (readBridge != null && readBridge instanceof StaxLazySourceBridge) {
// StaxSoapWriteBridge writingBridge = new StaxSoapWriteBridge(this);
// writingBridge.write(writer);
final String soapEnvNS = this.getNamespaceURI();
final DOMStreamReader reader = new DOMStreamReader(this);
XMLStreamReaderToXMLStreamWriter writingBridge = new XMLStreamReaderToXMLStreamWriter();
writingBridge.bridge( new XMLStreamReaderToXMLStreamWriter.Breakpoint(reader, writer) {
public boolean proceedAfterStartElement() {
if ("Body".equals(reader.getLocalName()) && soapEnvNS.equals(reader.getNamespaceURI()) ){
return false;
} else
return true;
}
});//bridgeToBodyStartTag
((StaxLazySourceBridge)readBridge).writePayloadTo(writer);
writer.writeEndElement();//body
writer.writeEndElement();//env
writer.writeEndDocument();
writer.flush();
} else {
LazyEnvelopeStaxReader lazyEnvReader = new LazyEnvelopeStaxReader(this);
XMLStreamReaderToXMLStreamWriter writingBridge = new XMLStreamReaderToXMLStreamWriter();
writingBridge.bridge(lazyEnvReader, writer);
// writingBridge.bridge(new XMLStreamReaderToXMLStreamWriter.Breakpoint(lazyEnvReader, writer));
}
//Assume the staxBridge is exhausted now since we would have read the body reader
((BodyImpl) getBody()).setPayloadStreamRead();
}