【问题标题】:Error getting file name using getServletConfig使用 getServletConfig 获取文件名时出错
【发布时间】:2013-03-02 09:22:13
【问题描述】:

我正在使用JasperReport 在 Java Web 应用程序中生成报告。

我有下面一行来获取报告文件。

JasperReport report = (JasperReport) JRLoader.loadObject(getServletConfig().getServletContext().getRealPath("\rpts\report1.jasper"));

但是当我尝试使用上面的行时,我得到了FileNotFoundException。但是当我尝试使用以下行时,程序执行成功。

JasperReport report = (JasperReport) JRLoader.loadObject(getServletConfig().getServletContext().getRealPath("//rpts//report1.jasper"));

那么,我想知道第一行有什么问题?

提前谢谢...

【问题讨论】:

    标签: java file servlets jasper-reports servletconfig


    【解决方案1】:

    您提供的路径应该是 servlet 路径。通常,servlet 路径具有正斜杠 /

    请试试这个/rpts/report1.jasper"

    【讨论】:

      【解决方案2】:

      Java 语言(和其他语言)需要Strings 中的\\(双反斜杠)才能读取单个\。您的第一种方式应该更改为

      JasperReport report = (JasperReport) JRLoader.loadObject(getServletConfig()
          .getServletContext().getRealPath("\\rpts\\report1.jasper"))
      

      不过,最好使用/ 检查路径,或者使用File#separator 更好,如下所示:File.separator vs Slash in Paths

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-28
        • 2015-04-27
        • 1970-01-01
        相关资源
        最近更新 更多