problem when when writing the graph as PNG

A discussion forum for the Eastwood Chart Servlet.

problem when when writing the graph as PNG

Postby snageshbabu » Thu Jan 31, 2008 10:16 am

Hi,
I have a problem when i am calling a servlet from jsp through img tag.
The code is working fine when tested in local, but getting problem when i deployed on DEV.
This is the code in servlet..
OutputStream out = response.getOutputStream();
response.setContentType("image/png");
ChartUtilities.writeChartAsPNG(out, chart, 400, 300);
out.close();

This is the error...

javax.imageio.IIOException: I/O error writing PNG file!
at com.sun.imageio.plugins.png.PNGImageWriter.write(PNGImageWriter.java:1116)
at javax.imageio.ImageWriter.write(ImageWriter.java:598)
at javax.imageio.ImageIO.write(ImageIO.java:1450)
at javax.imageio.ImageIO.write(ImageIO.java:1524)
at com.jpmorgan.mds.curvegraph.GraphAfterDF.doGet(GraphAfterDF.java:249)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at com.jpmorgan.janus.webagent.j2ee.JanusFilterAgent.doFilter(JanusFilterAgent.java:174)
at com.jpmorgan.janus.webagent.j2ee.JanusFilter.doFilter(JanusFilter.java:84)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:201)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.cluster.session.JvmRouteBinderValve.invoke(JvmRouteBinderValve.java:210)
at org.apache.catalina.cluster.tcp.ReplicationValve.invoke(ReplicationValve.java:347)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:834)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:640)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1286)
at java.lang.Thread.run(Thread.java:595)
Caused by: ClientAbortException: java.io.IOException
at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:327)
at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:293)
at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:98)
at javax.imageio.stream.FileCacheImageOutputStream.flushBefore(FileCacheImageOutputStream.java:214)
at com.sun.imageio.plugins.png.IDATOutputStream.finishChunk(PNGImageWriter.java:172)
at com.sun.imageio.plugins.png.IDATOutputStream.finish(PNGImageWriter.java:229)
at com.sun.imageio.plugins.png.PNGImageWriter.write_IDAT(PNGImageWriter.java:894)
at com.sun.imageio.plugins.png.PNGImageWriter.write(PNGImageWriter.java:1106)
... 24 more
Caused by: java.io.IOException
at org.apache.coyote.http11.InternalAprOutputBuffer.flushBuffer(InternalAprOutputBuffer.java:700)
at org.apache.coyote.http11.InternalAprOutputBuffer.flush(InternalAprOutputBuffer.java:288)
at org.apache.coyote.http11.Http11AprProcessor.action(Http11AprProcessor.java:967)
at org.apache.coyote.Response.action(Response.java:183)
at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:322)
... 31 more
I guess its bug in jfreecharts.
Thanks for the help in Advance.
SNB
snageshbabu
 
Posts: 1
Joined: Thu Jan 31, 2008 10:02 am

Postby lia » Tue Feb 05, 2008 6:56 am

I have just migrated from Java 1.4 and Tomcat 4. My servlet was able to get the output stream and display the chart in Java 1.4 using Tomcat 4, now I am working in Java 1.6 and Tomcat 6 and I am getting the error javax.imageio.IIOException: unable to get outputsteam. PLease help I am also stuck
lia
 
Posts: 18
Joined: Sat Oct 14, 2006 5:02 am
Location: Victoria BC

Postby david.gilbert » Thu Apr 17, 2008 4:04 pm

Sorry for the delay responding.

These sound like questions for the regular JFreeChart forum, rather than Eastwood. However, two things to check:

(1) Is your server running in "headless" mode? This is a common issue when something works on your local machine, but doesn't work on the server. The exception messages are not always that helpful. See item 10 in the JFreeChart FAQ for more info:

http://www.jfree.org/jfreechart/faq.html#FAQ10

(2) Are you using JFreeChart 1.0.9 and sending JPEG images back to the client? There is a bug in JFreeChart 1.0.9 (only) with respect to JPEG images (only). You can workaround this by downgrading to JFreeChart 1.0.8 or using PNG images rather than JPEG.

If it isn't either of those things, then I'm not sure.
David Gilbert
JFreeChart Project Leader

:idea: Read my blog
:idea: Ask your company to buy the JFreeChart Developer Guide
:idea: Check out other products sold by my company Object Refinery Limited
david.gilbert
JFreeChart Project Leader
 
Posts: 11653
Joined: Fri Mar 14, 2003 10:29 am

i need clarification

Postby senthil » Wed Apr 30, 2008 3:56 pm

i have single suggestion :

David all the time when we are asking some issues while using jfrreechart
in jsp

you are saying that it should run in headless mode

but my question is

how it works fine at one time without headless mode in a server setting .how?

I am very eager to know when we can simulate this bug .....

i have already raised in genral forum , please response me ASP
senthil
 
Posts: 12
Joined: Thu Apr 17, 2008 8:48 am

Postby Taqua » Wed Apr 30, 2008 6:01 pm

Well, the ClientAbortException sends a clear message.

Your browser did not wait for the image to be sent completely. Maybe the user moved on to a different page, maybe the connection got dropped, whatever it was: You cannot do anything about it and headless mode has nothing to do with it.

HTTP is a network protocol, so you encounter connection errors from time to time. This particular exception is nothing you should worry about, it just tells you that the client went away. Ignore it.
Taqua
JFreeReport Project Leader
 
Posts: 698
Joined: Fri Mar 14, 2003 3:34 pm

Postby david.gilbert » Thu May 01, 2008 9:10 am

Taqua wrote:Well, the ClientAbortException sends a clear message.


Thanks Thomas, I should read the exceptions properly!
David Gilbert
JFreeChart Project Leader

:idea: Read my blog
:idea: Ask your company to buy the JFreeChart Developer Guide
:idea: Check out other products sold by my company Object Refinery Limited
david.gilbert
JFreeChart Project Leader
 
Posts: 11653
Joined: Fri Mar 14, 2003 10:29 am

Re: problem when when writing the graph as PNG

Postby ravikumar.palaparthi » Sat Dec 19, 2009 10:17 am

Hi Snageshbabu,

I am also getting same problem.its running perfectly in my local system and not in production servers..can you tell me the proper fix for it ... please reply ASAP ....

mail id :: [url]ravikumar.palaparthi@gmail.com[/url]

please see the following error msg ...

02:28:02,937 ERROR [STDERR] javax.imageio.IIOException: I/O error writing PNG file!
02:28:02,937 ERROR [STDERR] at com.sun.imageio.plugins.png.PNGImageWriter.write(PNGImageWriter.java:1116)
02:28:02,937 ERROR [STDERR] at javax.imageio.ImageWriter.write(ImageWriter.java:598)
02:28:02,937 ERROR [STDERR] at javax.imageio.ImageIO.write(ImageIO.java:1450)
02:28:02,937 ERROR [STDERR] at javax.imageio.ImageIO.write(ImageIO.java:1524)
02:28:02,937 ERROR [STDERR] at org.jfree.chart.encoders.SunPNGEncoderAdapter.encode(SunPNGEncoderAdapter.java:128)
02:28:02,937 ERROR [STDERR] at org.jfree.chart.encoders.EncoderUtil.writeBufferedImage(EncoderUtil.java:191)
02:28:02,937 ERROR [STDERR] at org.jfree.chart.ChartUtilities.writeBufferedImageAsPNG(ChartUtilities.java:654)
02:28:02,937 ERROR [STDERR] at org.jfree.chart.ChartUtilities.writeChartAsPNG(ChartUtilities.java:212)
02:28:02,937 ERROR [STDERR] at org.jfree.chart.ChartUtilities.writeChartAsPNG(ChartUtilities.java:144)
02:28:02,938 ERROR [STDERR] at com.vpo.dashboard.actions.Stats.makePieChart(Stats.java:243)
02:28:02,938 ERROR [STDERR] at com.vpo.dashboard.actions.ReportStats.service(ReportStats.java:55)
02:28:02,970 ERROR [STDERR] at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
02:28:02,970 ERROR [STDERR] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.ja
va:290)

------------------------------------------------------

snageshbabu wrote:Hi,
I have a problem when i am calling a servlet from jsp through img tag.
The code is working fine when tested in local, but getting problem when i deployed on DEV.
This is the code in servlet..
OutputStream out = response.getOutputStream();
response.setContentType("image/png");
ChartUtilities.writeChartAsPNG(out, chart, 400, 300);
out.close();

This is the error...

javax.imageio.IIOException: I/O error writing PNG file!
at com.sun.imageio.plugins.png.PNGImageWriter.write(PNGImageWriter.java:1116)
at javax.imageio.ImageWriter.write(ImageWriter.java:598)
at javax.imageio.ImageIO.write(ImageIO.java:1450)
at javax.imageio.ImageIO.write(ImageIO.java:1524)
at com.jpmorgan.mds.curvegraph.GraphAfterDF.doGet(GraphAfterDF.java:249)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at com.jpmorgan.janus.webagent.j2ee.JanusFilterAgent.doFilter(JanusFilterAgent.java:174)
at com.jpmorgan.janus.webagent.j2ee.JanusFilter.doFilter(JanusFilter.java:84)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:201)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.cluster.session.JvmRouteBinderValve.invoke(JvmRouteBinderValve.java:210)
at org.apache.catalina.cluster.tcp.ReplicationValve.invoke(ReplicationValve.java:347)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:834)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:640)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1286)
at java.lang.Thread.run(Thread.java:595)
Caused by: ClientAbortException: java.io.IOException
at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:327)
at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:293)
at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:98)
at javax.imageio.stream.FileCacheImageOutputStream.flushBefore(FileCacheImageOutputStream.java:214)
at com.sun.imageio.plugins.png.IDATOutputStream.finishChunk(PNGImageWriter.java:172)
at com.sun.imageio.plugins.png.IDATOutputStream.finish(PNGImageWriter.java:229)
at com.sun.imageio.plugins.png.PNGImageWriter.write_IDAT(PNGImageWriter.java:894)
at com.sun.imageio.plugins.png.PNGImageWriter.write(PNGImageWriter.java:1106)
... 24 more
Caused by: java.io.IOException
at org.apache.coyote.http11.InternalAprOutputBuffer.flushBuffer(InternalAprOutputBuffer.java:700)
at org.apache.coyote.http11.InternalAprOutputBuffer.flush(InternalAprOutputBuffer.java:288)
at org.apache.coyote.http11.Http11AprProcessor.action(Http11AprProcessor.java:967)
at org.apache.coyote.Response.action(Response.java:183)
at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:322)
... 31 more
I guess its bug in jfreecharts.
Thanks for the help in Advance.
SNB
ravikumar.palaparthi
 
Posts: 1
Joined: Sat Dec 19, 2009 9:55 am


Return to Eastwood Chart Servlet

Who is online

Users browsing this forum: No registered users and 1 guest