您的位置:首页 > 编程语言 > Java开发

java.util.MissingResourceException

2010-09-17 17:55 447 查看
解决 java.util.MissingResourceException: Can't find bundle for base name test1, locale zh_CN 错误

资源文件名:test1controlTest_zh_CN.properties

使用Jasper Report 本地化功能, 出现以下问题.
java.util.MissingResourceException: Can't find bundle for base name test1, locale zh_CN
at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:837)
at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:727)
at java.util.ResourceBundle.getBundle(ResourceBundle.java:700)
at net.sf.jasperreports.engine.fill.JRFillDataset.loadResourceBundle(JRFillDataset.java:551)
at net.sf.jasperreports.engine.fill.JRFillDataset.setParameterValues(JRFillDataset.java:582)
at net.sf.jasperreports.engine.fill.JRBaseFiller.setParameters(JRBaseFiller.java:1202)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:842)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:814)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:89)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:601)
at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:492)
at net.sf.jasperreports.engine.JasperFillManager.fillReportToFile(JasperFillManager.java:448)
at com.tom.i18n.I18nApp.fillReport(I18nApp.java:82)
at com.tom.i18n.I18nApp.main(I18nApp.java:38)

就是说找不到配置文件

在尝试多次后, 发现在报表模版文件(.jrxml)中的 <jasperReport> 标签的属性 "resourceBundle"中显示为:

<jasperReport
name="test1"

...
resourceBundle="test1"
>

原来这里resourceBundle错误,是因为在ireport设计时没有在test1.jrxml文件的属性中绑定资源文件

改为:resourceBundle="test1controlTest_zh_CN"则解决错误

如果不绑定,则要求资源文件的名称也要与报表文件的名称保持一致,如:

test1.properties

test1_zh_CN.properties

test1_en_USproperties

运行时根据情况自动选择
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐