我有一個場景,我需要顯示錶(使用JTable生成)將其轉換爲PNG圖像,然後使用servlet顯示它們。使用servlets顯示圖像
以下是在servlet代碼顯示錶:
{
table = u.generateTableChart("datamonth");
saveToServlet(table, table.getTableHeader(), p_resp);
}
void saveToServlet(JTable table, JTableHeader header,
HttpServletResponse p_resp)
{
int w = Math.max(table.getWidth(), header.getWidth());
int h = table.getHeight() + header.getHeight();
OutputStream out = null;
BufferedImage bi = new BufferedImage(w, h, BufferedImage.TYPE_INT_RGB);
Graphics2D g2 = bi.createGraphics();
header.paint(g2);
g2.translate(0, header.getHeight());
table.paint(g2);
g2.dispose();
try {
p_resp.setContentType("image/png");
out = p_resp.getOutputStream();
ImageIO.write(bi, "png", out);
} catch (IOException ioe) {
System.out.println("write: " + ioe.getMessage());
}
}
這似乎是引發此錯誤,當我嘗試查看網頁 的圖像,因爲它有無法顯示錯誤太多了。
我能夠將文件存儲在臨時位置,並且能夠看到圖形。
ServletOutputStream out = null;
try {
out = p_resp.getOutputStream();
p_resp.setContentType("image/png");
chart=u.genarateLineChart(m_martiniInstance);
ChartUtilities.writeChartAsJPEG(out, chart, 625, 500);
}
,仍然沒有運氣
由於提前, 巴維亞
在哪個平臺(Windows,Linux)是您的服務器? – SJuan76
@SJuan tomcat服務器在RHEL上 – bhavs
@Bhavya:你確定圖像是RGB格式嗎?如果您生成的圖像不適用於屏幕消耗,則通常會出現此錯誤。 –