Bom dia, estou tendo um problema com o jaspersoft e o spring. Ao chamar o meu relatorio ele em retorna o seguinte erro:
java.io.FileNotFoundException: class path resource [jasperreports/reports/rpt_redecorp.html.jasper] cannot be opened because it does not exist
Por algum motivo que ainda não consegui identificar o spring esta chamando um “.html.jasper” ao inves de um “.jasper”
controler do report:
@Controller
@RequestMapping("/reports")
public class ReportController {
private static final String FILE_FORMAT = "format";
private static final String DATASOUCE = "datasource";
@GetMapping(value="{reportname}")
public ModelAndView getRptByParam(final ModelMap modelMap, ModelAndView modelAndView, @PathParam("reportname")
final String reportname, @RequestParam(FILE_FORMAT) final String format, @RequestParam("id") final Pessoa pessoa, @RequestParam(name="email", required=false) final String email){
modelMap.put(DATASOUCE, new JREmptyDataSource());
modelMap.put(FILE_FORMAT, format);
modelMap.put("nome", pessoa.getNome());
modelMap.put("situacao", pessoa.getInstitucional().getSituacao().getDescricao());
modelMap.put("lotacao", pessoa.getInstitucional().getLotacao());
modelMap.put("setor", pessoa.getInstitucional().getSetor());
modelMap.put("cargo", pessoa.getInstitucional().getCargo());
modelMap.put("cpf", pessoa.getCpf());
modelMap.put("dataNascimento", pessoa.getDataNascimento().getTime());
modelMap.put("email", pessoa.getEmail());
modelMap.put("telefone", pessoa.getFonefixo());
modelMap.put("turno", pessoa.getInstitucional().getTurno().getDescricao());
modelMap.put("matricula", pessoa.getInstitucional().getMatricula());
modelMap.put("emailSugestao", email);
modelAndView = new ModelAndView(reportname, modelMap);
return modelAndView;
}
}
Application.java:
@SpringBootApplication
public class SolicitacoesApplication {
public static void main(String[] args) {
SpringApplication.run(SolicitacoesApplication.class, args);
}
@Bean
public LocaleResolver localeResolver(){
return new FixedLocaleResolver(new Locale("pt", "BR"));
}
@Bean
public JasperReportsViewResolver getJasperReportsViewResolver() {
JasperReportsViewResolver resolver = new JasperReportsViewResolver();
resolver.setPrefix("classpath:jasperreports/");
resolver.setSuffix(".jasper");
resolver.setReportDataKey("datasource");
resolver.setViewNames("*rpt_*");
resolver.setViewClass(JasperReportsMultiFormatView.class);
resolver.setOrder(0);
return resolver;
}
}
parte da pagina que faz a chamada do relatório:
<a th:href="@{/reports/rpt_redecorp(format=pdf, id= ${pessoa.id})}" class="btn btn-primary">Solicitar</a>