【问题标题】:how to call jasper report on jsp page如何在jsp页面上调用jasper报告
【发布时间】:2010-09-07 01:47:59
【问题描述】:

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

【问题讨论】:

  • 提供失败的代码以及堆栈跟踪

标签: java jsp jasper-reports


【解决方案1】:

FileNotFoundException 一般表示文件不存在。从您的代码中获取路径并将其粘贴到您的文件系统资源管理器中,然后查看它是否存在。

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

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

【讨论】:

    【解决方案2】:

    您应该始终在 Java IO 中使用绝对路径。显然你尝试的那个是完全错误的。也许你只是根据 webapp 的部署位置猜到了。你不应该那样做。如果 jrxml 文件实际上位于 web 内容中,那么您可以使用 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);
    

    【讨论】:

      【解决方案3】:

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

      尝试类似 字符串路径 = "/tmp/test.jrmxl"; 文件 jrxmlFile = 新文件(路径); JasperDesign jasperDesign = JRXmlLoader.load(jrxmlFile); 使用适当的 try/catch 等,然后在担心加载程序之前先调试文件。

      您可能应该获得一些 jasperreports 文档。这些书非常适合那些基本的东西。

      【讨论】:

        猜你喜欢
        • 2011-03-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多