我希望使用EWS java api获得重复结束日期。
EWS java api支持方法,名为Recurrence.getEndDate()。
但它不适用于我的项目。
复发类有4个method(getStartDate, getEndDate, getNumberOfOccurences, getClass)
。
我可以获得开始和上课,但其他人无法获得。
任何人都会帮助我。
以下代码在我的项目中重复出现。感谢:)
PropertySet propSet = new PropertySet(TaskSchema.Recurrence);
Task task = Task.bind(service,new ItemId(task_id),propSet);
Recurrence rec = task.getRecurrence();
rec.getEndDate();
rec.getNumberOfOccurrences();
答案 0 :(得分:2)
我最近遇到了这个问题,发现这是因为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
对象中的numberOfOccurrences
和Recurrence
字段永远不会设置,因此始终为null
。