2009-07-16 26 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