我在Internet Explorer上打印了一个jfreechart,我得到了一个空白页面。 实际上,我的IE版本是11.0.9600.18697CO,11.0.43(KB4021558)。
我对旧版IE没有这个问题。
我在Chrome和Firefox上没有这个问题。
我的freechart是在服务器上生成的,由servlet在客户端显示并在服务器上删除(这是一次jfreechart)。
在IE的控制台调试中,当我执行window.print();有发送到服务器的requets。我认为它引起了问题(虽然http代码= 200)。
如果我不删除服务器上的图表,我没有问题。
有人遇到同样的问题?解? 非常感谢, 最好的问候
答案 0 :(得分:1)
在使用ChartUtilities
的servlet上下文中,请尝试使用相应的save…
方法,而不是使用write…
方法之一。
public void doGet(HttpServletRequest request, HttpServletResponse response) throws … {
OutputStream out = response.getOutputStream();
…
//ChartUtilities.saveChartAsPNG(file, chart, …);
ChartUtilities.writeChartAsPNG(out, chart, …);
}
你能解释一下原因吗?我正在使用
ServletUtilities.saveChartAsPNG()
我猜测有一个竞争条件允许文件过早删除。如果您需要ChartRenderingInfo
,相应的ChartUtilities
方法可能会writeChartAsPNG()
。如果无法切换,请使用DelayQueue<File>
推迟删除临时文件。