在Apache服务器上部署war文件时,Jasper报告不起作用

时间:2013-12-29 19:18:28

标签: java apache jsp jasper-reports

我已经创建了jasper报告,它在netbean上运行得非常好,但是当我构建war文件并将其部署在apache服务器上时,它就无法运行....

我试过这个问题这么努力花了一整天但没有找到任何解决方案请帮我解决这个问题

这是我的代码

String loc = "C:\\Program Files\\report\\
public void CustBillPrint(String BillNo) {
        String path = loc + "customer-bill-1.jasper";
        Map param = new HashMap();
        param.put("billno", BillNo);
        try {
            JasperPrint jasperPrint = JasperFillManager.fillReport(path, param, con);
            JasperViewer.viewReport(jasperPrint, false);

        } catch (JRException e) {
            System.out.println(e);
        }
    }

我已经尝试了很多方法如下:

InputStream path = this.getClass().getResourceAsStream("report/farmpati-1.jasper");

InputStream path = new FileInputStream(new File("web/report/farmpati-1.jasper"));

InputStream path = new FileInputStream(new File("").getAbsolutePath() + "/reports/logReport.jrxml");

String path = System.getProperty("user.dir") + "\\report\\";

String path = new File(".").getCanonicalPath() + "/web/report/";

在NetBan中所有这些替代工作但在部署为战争时没有处理apache

2 个答案:

答案 0 :(得分:0)

使用ServletContext的{​​{1}}方法在任何Web应用程序中读取jar文件中的资源。

getResourceAsStream()

请查看Reading files in jar

答案 1 :(得分:-1)

我在community.jaspersoft.com上找到了一个可能的答案: http://community.jaspersoft.com/questions/536218/resolved-problem-subreport-reference-after-exporting-ireport-jasperserver

  

"在报告工作中,子报告不在   存储库作为自己的报告与主报告处于同一级别。   在Resources"文件夹中还有一个该子报告的副本"对于   主要报告。"

该主题包含多个解决方案,其中一个是Stackoverflow上已解决的主题: JasperServer: Unable to locate the subreport exception (警告:这是一个很长的,但详细的,阅读)