RE: binary view
The problem is that you're opening the output stream at the beginning of your jsp and then reopening the output stream by calling response.getOutputStream(). I believe you can call response.reset() to fix this problem: % response.reset(); response.setContentType(image/png); java.io.OutputStream os = response.getOutputStream(); java.awt.image.BufferedImage buffer = (java.awt.image.BufferedImage) request.getAttribute(imageBuffer); javax.imageio.ImageIO.write(buffer,png,os); os.flush(); os.close(); % Regards, Thad Smith -Original Message- From: Daniel Watrous [mailto:[EMAIL PROTECTED] Sent: Monday, April 18, 2005 4:20 PM To: user@struts.apache.org Subject: binary view I have an action in my application that generates a PNG image from some text stored in a session object. My view is very simple: [EMAIL PROTECTED] contentType=image/png% % java.io.OutputStream os = response.getOutputStream(); java.awt.image.BufferedImage buffer = (java.awt.image.BufferedImage) request.getAttribute(imageBuffer); javax.imageio.ImageIO.write(buffer,png,os); os.close(); % Thats it. My action loads imageBuffer with the image data. The first time I load the page I get the error: java.lang.IllegalStateException: getOutputStream() has already been called for this response Is there a better way to accomplish what I am after? I would prefer to load the page one time and have it work, rather than the refresh. Thanks in advance... DW - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: binary view
Why even bother with a jsp? You have the response object in your action, just start spewing data into it. Larry On 4/18/05, Daniel Watrous [EMAIL PROTECTED] wrote: I have an action in my application that generates a PNG image from some text stored in a session object. My view is very simple: [EMAIL PROTECTED] contentType=image/png% % java.io.OutputStream os = response.getOutputStream(); java.awt.image.BufferedImage buffer = (java.awt.image.BufferedImage) request.getAttribute(imageBuffer); javax.imageio.ImageIO.write(buffer,png,os); os.close(); % Thats it. My action loads imageBuffer with the image data. The first time I load the page I get the error: java.lang.IllegalStateException: getOutputStream() has already been called for this response Is there a better way to accomplish what I am after? I would prefer to load the page one time and have it work, rather than the refresh. Thanks in advance... DW - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: binary view
This might be a good case to write a custom tag. -Original Message- From: Daniel Watrous [mailto:[EMAIL PROTECTED] Sent: Monday, April 18, 2005 5:20 PM To: user@struts.apache.org Subject: binary view I have an action in my application that generates a PNG image from some text stored in a session object. My view is very simple: [EMAIL PROTECTED] contentType=image/png% % java.io.OutputStream os = response.getOutputStream(); java.awt.image.BufferedImage buffer = (java.awt.image.BufferedImage) request.getAttribute(imageBuffer); javax.imageio.ImageIO.write(buffer,png,os); os.close(); % Thats it. My action loads imageBuffer with the image data. The first time I load the page I get the error: java.lang.IllegalStateException: getOutputStream() has already been called for this response Is there a better way to accomplish what I am after? I would prefer to load the page one time and have it work, rather than the refresh. Thanks in advance... DW - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]