You may want to grab the servlet response OutputStream like this instead:
OutputStream out = response.getOutputStream();
TranscoderOutput output = new TranscoderOutput( out );
t.transcode(input, output);
output.flush();
output.close();
-----Original Message-----
From: J. David Eisenberg [mailto:[EMAIL PROTECTED]]
Sent: Thursday, August 30, 2001 1:06 AM
To: [EMAIL PROTECTED]
Subject: Transcoder vs. servlet
I'm trying to transcode an SVG file (in a string buffer) to
JPG and send it out in a sevlet with this code:
==================================
public void headerInfo( HttpServletRequest request,
HttpServletResponse response, String contentType)
{
response.setContentType( contentType );
response.setHeader("Cache-Control",
"no-cache, post-check=0, pre-check=0");
String agent =
request.getHeader("User-Agent").toLowerCase();
// netscape chokes on Pragma no-cahe so only send it to
explorer
if (agent.indexOf("explorer") > -1){
response.setHeader("Pragma", "no-cache");
}
response.setHeader("Expires", "Thu, 01 Dec 1994 16:00:00
GMT");
}
public void emitJPG ( HttpServletRequest request,
HttpServletResponse response, String svgString )
{
JPEGTranscoder t = new JPEGTranscoder();
t.addTranscodingHint(JPEGTranscoder.KEY_QUALITY,
new Float(.8));
TranscoderInput input =
new TranscoderInput( new StringReader(svgString)
);
try {
headerInfo( request, response, "image/jpeg");
TranscoderOutput output =
new
TranscoderOutput(response.getOutputStream());
t.transcode(input, output);
}
catch (Exception e)
{
e.printStackTrace();
}
}
==================================
The first time I make the request, I seem to get a good
response.
The second time I make the request, I get this error:
Exception in thread "Thread-9" java.io.IOException: Broken pipe
at java.net.SocketOutputStream.socketWrite(Native Method)
at java.net.SocketOutputStream.write(SocketOutputStream.java:83)
at
org.apache.tomcat.service.http.HttpResponseAdapter.doWrite(HttpResponseAdapter.java:162)
at
org.apache.tomcat.core.BufferedServletOutputStream.doWrite(BufferedServletOutputStream.java:121)
at
org.apache.tomcat.core.BufferedServletOutputStream.write(BufferedServletOutputStream.java:192)
at sun.awt.image.codec.JPEGImageEncoderImpl.writeJPEGStream(Native
Method)
at
sun.awt.image.codec.JPEGImageEncoderImpl.encode(JPEGImageEncoderImpl.java:475)
at
sun.awt.image.codec.JPEGImageEncoderImpl.encode(JPEGImageEncoderImpl.java:231)
at
sun.awt.image.codec.JPEGImageEncoderImpl.encode(JPEGImageEncoderImpl.java:238)
at
org.apache.batik.transcoder.image.JPEGTranscoder.writeImage(JPEGTranscoder.java:72)
at
org.apache.batik.transcoder.image.ImageTranscoder.transcode(ImageTranscoder.java:262)
at
org.apache.batik.transcoder.XMLAbstractTranscoder.transcode(XMLAbstractTranscoder.java:126)
at Transform.emitJPG(Transform.java:312)
at Transform.doPost(Transform.java:137)
at Transform.doGet(Transform.java:164)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:865)
at
[snip of other HttpServlet stack entries]
---
J. David Eisenberg http://catcode.com/
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]