我使用iCal4j库来生成一个iCalendar提要。
如果没有事件添加到日历中(只是因为碰巧没有任何即将到来的事件要添加),那么在将iCalendar数据写入输出流时,iCal4j会抛出一个验证异常:
net.fortuna.ical4j.model.ValidationException: Calendar must contain at least one component
at net.fortuna.ical4j.model.Calendar.validate(Calendar.java:287)
at net.fortuna.ical4j.model.Calendar.validate(Calendar.java:257)
at net.fortuna.ical4j.data.CalendarOutputter.output(CalendarOutputter.java:96)
at net.fortuna.ical4j.data.CalendarOutputter.output(CalendarOutputter.java:83)那么,根据iCalendar标准,没有事件的日历实际上是无效的,还是仅仅是iCal4j的验证过于严格?(如果是后者,有没有办法放松验证?)
发布于 2012-05-28 22:06:07
从技术上讲,iCalendar至少需要一个组件,如3.6节所述:
https://www.rfc-editor.org/rfc/rfc5545#section-3.6
icalbody = calprops component
[snip..]
component = 1*(eventc / todoc / journalc / freebusyc /
timezonec / iana-comp / x-comp)您可以使用非验证CalendarOutputter来避免此异常,但目前还没有办法在iCal4j中选择性地禁用空日历验证。
https://stackoverflow.com/questions/10733229
复制相似问题