2011-01-13 49 views
2

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

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

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

回答

2

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

请注意,如果您已将它们放入包中,则还需要在基本名称中指定它。例如。 com.example.Bundle,因为它们实际上放置在名为com.example的包中。

+0

我明白了。我非常天真,认为我可以将它们复制到我的项目文件夹中,在iReport中的类路径中引用它,并让所有内容正常工作。我会试着把这个包放到我的源码包中,然后把这个类路径放到iReport中 - 或者它没有用? – Sean 2011-01-13 21:19:54

0

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

这个文件夹里放置你的属性文件:

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

您还需要在报告中设置属性“资源包”(通过iReport,fo r实例)。该属性的值与文件的名称相同,在本例中为“myreport”(不需要添加“_Bundle”)。

+0

谢谢,我已经在iReport中正确设置了它。 iReport中的一切运行良好,它在我的主要项目中使用它导致了问题。我将资源捆绑到默认包中,一切都像魅力一样。 – Sean 2011-02-03 17:03:04