程序未找到JasperReports资源包(.properties文件)

时间:2011-01-13 20:05:20

标签: java jsf-2 jasper-reports

我正在尝试在我的JSF 2.0应用程序中使用JasperReports。我正在使用NetBeans 6.9.1,mojarra 2.0.3和PrimeFaces 2.2.RC2。我在iReport 3.7.6中开发了一份试用报告。我已经将一个静态标签更改为文本字段,从资源包/ .properties文件中获取值。该报告按预期从iReport运行,但当我尝试从我的程序运行它时,我收到以下错误:

SEVERE: javax.faces.FacesException: #{userReportBean.runReport}: java.util.MissingResourceException: Can't find bundle for base name Bundle, locale en_US

报告运行正常,不参考捆绑包。我唯一的解决方案是制作静态标签参数并在报告运行时传递它们吗?或者有没有办法告诉报告在没有从iReport运行报告时在哪里找到.properties文件?

2 个答案:

答案 0 :(得分:2)

这意味着它无法在类路径中找到任何文件Bundle_en_US.propertiesBundle_en.propertiesBundle.properties。您需要将它放在JasperReports可以访问的类路径中。

请注意,当您实际将它们放在包中时,您还需要在basename中指定它。例如。 com.example.Bundle表示它们实际上放在名为com.example的包中。

答案 1 :(得分:0)

您必须将捆绑包放在您拥有.jrxml文件的同一文件夹中。如果您的报告名为“myreport.jrxml”,则需要创建名为“myreport_Bundle”的文件夹。

在该文件夹中放置属性文件:

  • myreport.properties(默认文件)
  • myreport_en_US.properties(美式英语)
  • myreport_es_ES.properites(来自西班牙的西班牙语)

您还需要在报告中设置属性“Resources Bundle”(例如,通过iReport)。该属性的值与文件名相同,在本例中为“myreport”(无需添加“_Bundle”)。