在jsp中渲染图表而不存储

时间:2009-07-16 17:47:15

标签: google-app-engine jsp

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

我尝试了以下内容:

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

但最终得到了

java.lang.IllegalStateException: STREAM

顺便说一下,在app引擎环境中也不允许使用java.awt。我有什么选择来解决这个问题?

3 个答案:

答案 0 :(得分: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"

答案 1 :(得分:0)

为了澄清一下,上面的JSP代码是针对<img src="...">中指定的JSP,对吧? 确保该页面上的<% %>标记之外没有空格/新行任何地方,否则它们将被写入JspWriter,这将阻止您获取OutputStream。我很确定你现在遇到的问题。

答案 2 :(得分:0)

您还可以使用基于Flash的图表,例如amcharts http://www.amcharts.com/。 看我的演示 http://aaron.oirt.rutgers.edu/myapp/amcharts/doc 我在GAE下进行了测试,结果很好。