2009-07-16 30 views
0

我在JSP里面使用JFreeChart创建了一个图表。我想使用JSP在网页中呈现此图表,而不将图像存储为JPEG/PNG文件。这是在does not support writing to disk的谷歌应用程序引擎环境。在jsp里面没有存储的渲染图表

我试过如下:

java.awt.image.BufferedImage chartImage = targetChart.createBufferedImage(600,400); 
ServletOutputStream out1 = response.getOutputStream(); 
JPEGImageEncoder encoder= JPEGCodec.createJPEGEncoder(out1); 

,但最终得到一个

java.lang.IllegalStateException: STREAM 

BTW,java.awt中也没有在App Engine环境允许的。我有什么选择来解决这个问题?

回答

0

为了澄清,上面的JSP代码适用于在<img src="...">中指定的JSP,对吧? 确保你没有空格/新行任何地方<% %>以外的标签,否则他们会被写入JspWriter,这将阻止你获得OutputStream。我很确定这是你现在遇到的问题。

1

我放弃了JfreeChart方法,并使用Google Chart API来构建饼图.Ex。

<IMG SRC="http://chart.apis.google.com/chart?chco=FF3300,66CC33&cht=p3&chl=A|B|C|D&chs=500x200&chd=t:10,40,30,20&chtt=Your%20Chart" 
+0

+1,IMO google chart API值得推荐。 – dantuch 2011-08-20 11:40:25