JasperReportsViewResolver在一段时间后添加.html


问题内容

我遇到一个奇怪的问题,我确实安装了httpd作为tomcat的反向代理infront,然后开始面对以下问题

org.springframework.context.ApplicationContextException: Could not load JasperReports report from class path resource [static/jasper/rpt_delivery.html.jrxml]; nested exc
eption is java.io.FileNotFoundException: class path resource [static/jasper/rpt_delivery.html.jrxml] cannot be opened because it does not exist
        at org.springframework.web.servlet.view.jasperreports.AbstractJasperReportsView.loadReport(AbstractJasperReportsView.java:529)

如果我为tomcat重新启动,则一切正常,但在10分钟后,我开始出现上述错误,问题是资源应解决为/statc/jasper/rpt_delivery.jrxml,我不知道html从哪里来,代码从大约一年。

    @Bean
    public JasperReportsViewResolver getJasperReportsViewResolver() {
      JasperReportsViewResolver resolver = new JasperReportsViewResolver();
      resolver.setPrefix("classpath:/static/jasper/");
      resolver.setSuffix(".jrxml");
      resolver.setReportDataKey("datasource");
      resolver.setViewNames("rpt_*");
      resolver.setViewClass(JasperReportsMultiFormatView.class);
      resolver.setOrder(0);
      return resolver;
    }

    @Bean
    public ClassLoaderTemplateResolver templateResolver() {
        ClassLoaderTemplateResolver result = new ClassLoaderTemplateResolver();
        result.setPrefix("templates/");
        result.setSuffix(".html");
        result.setTemplateMode("HTML5");
        result.setCacheable(properties.isCache());
        result.setOrder(1);
        return result;
    }

问题答案:

正如我上面的评论确实对其他人有帮助,我将其发布为问题的答案

添加produces = "application/pdf;charset=UTF-8" 做到了,现在效果很好