如何在jsp页面上调用jasper报告

时间:2010-01-12 12:19:55

标签: java jsp jasper-reports

当我通过jrxml调用.load()文件时,它会抛出异常FileNotfoundException。 我试过绝对路径,但它不起作用。请帮忙。

3 个答案:

答案 0 :(得分:1)

FileNotFoundException通常意味着该文件不存在。从代码中获取路径并将其粘贴到文件系统资源管理器中,看它是否存在。

如果是,则表示由于某种原因无法访问:

  

当具有指定路径名的文件不存在时,FileInputStream,FileOutputStream和RandomAccessFile构造函数将抛出此异常。如果文件确实存在但由于某种原因无法访问,例如当尝试打开只读文件进行写入时,这些构造函数也会抛出它。

答案 1 :(得分:1)

您应该始终在Java IO中使用绝对路径。显然你试过的那个是完全错的。也许你只是根据webapp的部署位置猜对了。你不应该这样做。如果jrxml文件实际位于webcontent中,那么您可以使用ServletContext#getRealPath()将相对Web路径转换为绝对磁盘文件系统路径,然后您可以在通常的Java IO内容中进一步使用该路径

假设file.jrxml位于webcontent根目录中(例如http://example.com/contextname/file.jrxml可访问),这是一个示例:

String absolutePath = getServletContext().getRealPath("file.jrxml");
File file = new File(absolutePath);

答案 2 :(得分:0)

这取决于您如何为其提供对文件的引用。查看JRXmlLoader http://jasperreports.sourceforge.net/api/net/sf/jasperreports/engine/xml/JRXmlLoader.html的文档 你可以看到你可以在对File对象的引用中传递它。你可能只是传入一个字符串,这可能是错误的。

尝试类似的东西                     String path =“/ tmp / test.jrmxl”;                     文件jrxmlFile =新文件(路径);                     JasperDesign jasperDesign = JRXmlLoader.load(jrxmlFile); 使用适当的try / catch等等,然后在担心加载器之前先调试文件。

你应该得到一些jasperreports文档。这些书非常适合那些基本的东西。