我正在使用Jasper報告的系統上工作。最近它開始拋出這個錯誤:ConversionException:Jasper報告中的可解析日期
org.apache.commons.beanutils.ConversionException: Unparseable date: "03/03/1981"
at org.apache.commons.beanutils.locale.BaseLocaleConverter.convert(BaseLocaleConverter.java:241)
at org.apache.commons.beanutils.locale.LocaleConvertUtilsBean.convert(LocaleConvertUtilsBean.java:285)
at net.sf.jasperreports.engine.data.JRAbstractTextDataSource.convertStringValue(JRAbstractTextDataSource.java:69)
at net.sf.jasperreports.engine.data.JRXmlDataSource.getFieldValue(JRXmlDataSource.java:313)
at net.sf.jasperreports.engine.fill.JRFillDataset.setOldValues(JRFillDataset.java:823)
at net.sf.jasperreports.engine.fill.JRFillDataset.next(JRFillDataset.java:787)
at net.sf.jasperreports.engine.fill.JRBaseFiller.next(JRBaseFiller.java:1478)
at net.sf.jasperreports.engine.fill.JRVerticalFiller.fillReport(JRVerticalFiller.java:125)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:942)
at net.sf.jasperreports.engine.fill.JRBaseFiller.fill(JRBaseFiller.java:860)
at net.sf.jasperreports.engine.fill.JRFiller.fillReport(JRFiller.java:84)
at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:624)
at XmlJasperInterface.report(XmlJasperInterface.java:89)
at XmlJasperInterface.main(XmlJasperInterface.java:63)
Caused by: java.text.ParseException: Unparseable date: "03/03/1981"
at java.text.DateFormat.parse(DateFormat.java:337)
at net.sf.jasperreports.engine.util.JRDateLocaleConverter.parse(JRDateLocaleConverter.java:84)
at org.apache.commons.beanutils.locale.BaseLocaleConverter.convert(BaseLocaleConverter.java:232)
... 13 more
我不知道是什麼導致了它。我們最近還升級了Jasper報告,但是我記得它在升級後正在運行。
我發現名爲BeanUtils, Digester, and Type Conversion博客文章,其指向添加這些行:
String pattern = "MM/dd/yyyy";
Locale locale = Locale.getDefault();
DateLocaleConverter converter = new DateLocaleConverter(locale, pattern);
converter.setLenient(true);
ConvertUtils.register(converter, java.util.Date.class);
但他們什麼也沒有改變。我仍然得到同樣的錯誤。
觸發錯誤線是這個:
jasperPrint = JasperFillManager.fillReport(jasperReport, null, new JRXmlDataSource(System.in, selectCriteria));
感謝。
更新:將Jasper Reports降級到1.1.0使其重新工作,所以最有可能是升級破壞了它。
什麼是你的區域設置?對於「MM/dd/yyyy」模式,我會使用Locale.US而不是Locale.getDefault,它會爲您提供當前的OS語言環境。 – 2010-09-15 17:32:44
Pawel,我的語言環境是de_CH,但即使將日期寫爲d.m.yyyy也沒有幫助。我試過所有主要的日期格式,沒有任何工作。 – Pablo 2010-09-16 06:41:30