I am facing a weird problem , i did install httpd as reverse proxy infront of tomcat and then start to face the below problem
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)
if i do a restart for tomcat , every thing work perfectly but after like 10 min i start getting the above error , the issue is the resource should be resolved as /statc/jasper/rpt_delivery.jrxml
, i don't know from where html
is coming, the code was running OK from around a year .
@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;
}
As my comment above did help others i am posting it as an answer to the question
Adding produces = "application/pdf;charset=UTF-8"
did the trick and now it is working nice