2017-02-03 7 views
-2

Я использую springboot1.4 + jasperreports 6.2 в своем проекте. Я могу загрузить rpt_monthreport_boxsales.jrxml, когда я запустил сервер tomcat, после 2 ~ 3 дней будет показано исключение и перезагрузка сервера tomcat система будет нормально. Это смутило меня, откуда происходит «.html»?JasperReports Не удалось загрузить отчет JasperReports из ресурса пути класса

org.springframework.context.ApplicationContextException: 
Could not load JasperReports report from class path resource [jasperreports/rpt_monthreport_boxsales.html.jrxml]; 
nested exception is java.io.FileNotFoundException: 
class path resource [jasperreports/rpt_monthreport_boxsales.html.jrxml] cannot be opened because it does not exist 

Мой код:

@Bean(name = "velocityViewResolver") 
    public VelocityLayoutViewResolver velocityViewResolver(VelocityProperties properties) { 
     VelocityLayoutViewResolver resolver = new VelocityLayoutViewResolver(); 
      properties.applyToViewResolver(resolver); 
      resolver.setSuffix(".vm"); 
      resolver.setLayoutUrl("include/layout.vm"); 
      resolver.setOrder(1); 
      return resolver; 
    } 

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

    @RequestMapping(value = "/exportMonthReportBoxSales") 
public ModelAndView exportMonthReportBoxSales(ModelMap modelMap, ModelAndView modelAndView,@RequestParam(value = "month_str", required = true)String month_str) throws Exception { 
    List<MonthReport> monthReport_list = g20spaReportService.queryMonthReportBoxSales(month_str); 
    JRDataSource jrDataSource = new JRBeanCollectionDataSource(monthReport_list); 
    modelMap.put("datasource", jrDataSource); 
    modelMap.put("format","xls"); 
    modelAndView = new ModelAndView("rpt_monthreport_boxsales", modelMap); 
    return modelAndView; 
} 
+0

«Это смутило меня, что где« .html »происходит? - Похоже, что часть кода добавляет этот постфикс. Вы пытались отлаживать? –

+0

спасибо за ответ Алекса. Похоже, что часть кода добавляет этот постфикс. Вы пытались отлаживать? >>>> эта ошибка не может быть воспроизведена в местной среде. и я не добавил «.html» в свой проект. – Dreamy

ответ

0

Я решил этот вопрос, запретить суффикс HTML по умолчанию.

@Override 
    public void configureContentNegotiation(ContentNegotiationConfigurer configurer) { 
     configurer.favorPathExtension(false). 
      favorParameter(false). 
      ignoreAcceptHeader(false). 
      useJaf(false). 
      defaultContentType(MediaType.TEXT_HTML). 
      mediaType("json", MediaType.APPLICATION_JSON); 
    }