Hello. I saw that the post at
http://sources.redhat.com/ml/xsl-list/2001-08/msg00632.html was similar to a
problem that I am having.
I am writing a servlet. What I want to do is take the XML request posted to
it and run a transformation on it. The result of that transformation goes to
another servlet which does some work and returns some XML. I then need to
run a second transformation (with the initial XML request being the source)
that takes combines data from both the initial XML request and the response
from the servlet that I posted to. (Hope that's not too confusing).
I was initially letting Xalan create the StreamSource using the following
code:
int x = 999999999;
BufferedInputStream isInitial = new
BufferedInputStream(request.getInputStream());
isInitial.mark(x);
TransformerFactory tf = TransformerFactory.newInstance();
Transformer trans1 = tf.newTransformer(new StreamSource(eQuote2RS_xslt));
trans1.transform(new StreamSource(isInitial),new
StreamResult(outToServlet2));
//this part worked fine, but when tried to reset the BufferedInputStream, I
got an IOException saying that it was closed.
isInitial.reset(); //threw the IOException.
I then read the aforementioned post on xsl-list, and saw that Xalan would
close the stream unless it was created manually. So I then tried to do that
using the following code.
BufferedInputStream bisInitial = new
BufferedInputStream(req.getInputStream());
StreamSource ssInitial= new StreamSource (bisInitial);
bisInitial.mark(x);
TransformerFactory tf = TransformerFactory.newInstance();
Transformer trans1 = tf.newTransformer(new StreamSource(eQuote2RS_xslt));
trans1.transform(isInitial,new StreamResult(outToServlet2));
bisInitial.reset(); //still throws the IOException.
It seems that Xalan is closing my stream no matter how I create it. I guess
I could write it out to a file and open it twice, but that really seems like
a waste. Does anyone know what I'm doing wrong, or know of another way of
doing this???
Any assistance is greatly appreciated.
Mike Mercieca
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list