我正在尝试在我的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文件?
答案 0 :(得分:2)
这意味着它无法在类路径中找到任何文件Bundle_en_US.properties
,Bundle_en.properties
或Bundle.properties
。您需要将它放在JasperReports可以访问的类路径中。
请注意,当您实际将它们放在包中时,您还需要在basename中指定它。例如。 com.example.Bundle
表示它们实际上放在名为com.example
的包中。
答案 1 :(得分:0)
您必须将捆绑包放在您拥有.jrxml文件的同一文件夹中。如果您的报告名为“myreport.jrxml”,则需要创建名为“myreport_Bundle”的文件夹。
在该文件夹中放置属性文件:
您还需要在报告中设置属性“Resources Bundle”(例如,通过iReport)。该属性的值与文件名相同,在本例中为“myreport”(无需添加“_Bundle”)。