在我的应用程序中,我使用Jasper报告以各种格式生成报告。现在我正在尝试为一个巨大的结果集生成一个报告。当我通过网络时,发现我们可以使用虚拟器来处理大量数据。
我正在使用JRSwapFileVirtualizer,问题是什么时候创建它正在抛出File not found exception
的JRSwap文件。
我提供了我在服务器中创建的文件夹的真实路径,我使用的是WAS 6.0服务器
请让我知道我做错了什么。
我的代码
JRSwapFile swapFile = new JRSwapFile("http://localhost:9080/contextPath/reports", 2048, 1024);
JRSwapFileVirtualizer virtualizer = new JRSwapFileVirtualizer(3,swapFile, true);
例外
net.sf.jasperreports.engine.JRRuntimeException: java.io.FileNotFoundException: http:\localhost:9080\context-path\reports\swap_864564104_1316758806309 (The filename, directory name, or volume label syntax is incorrect.)
答案 0 :(得分:1)
从会话中获取绝对的contextPath:
HttpSession session = request.getSession(false);
ServletContext context = session.getServletContext();
ServletContextResource context = new ServletContextResource(context,"/reports");
您的代码:
JRSwapFile swapFile = new JRSwapFile(context.getFile().getAbsolutePath(), 2048, 1024);