我最近遇到了这个问题,发现这是因为 EWS Java API 中的一个错误。
修复
要修复该错误,您需要对 EWS Java API 1.2 中的两个地方的源代码进行更改(更改在注释中):
EndDateRecurrenceRange.java
(第 63 行)
protected void setupRecurrence(Recurrence recurrence) throws Exception {
super.setupRecurrence(recurrence);
this.endDate = recurrence.getEndDate(); // remove this line
recurrence.setEndDate(this.endDate); // add this line
}
NumberedRecurrenceRange.java
(第 61 行)
protected void setupRecurrence(Recurrence recurrence) throws Exception {
super.setupRecurrence(recurrence);
this.numberOfOccurrences = recurrence.getNumberOfOccurrences(); // remove this line
recurrence.setNumberOfOccurrences(this.numberOfOccurrences); // add this line
}
说明
RecurrencePropertyDefinition
是从 EWS XML 响应中解析重复出现的类。在解析 XML 响应时,RecurrenceRange
类(例如上面列出的类)用于设置重复字段,指定重复结束的时间(例如结束日期、出现次数、无结束)。这是通过调用来完成的setupRecurrence()
。
不幸的是,在上面提到的两个地方,开发人员错误地将RecurrenceRange
字段设置为空 Recurrence
字段,而不是相反。因此,返回对象中的endDate
andnumberOfOccurrences
字段Recurrence
永远不会被设置,因此总是null
。