2011-01-13 52 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