0

我想使用 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();
4

1 回答 1

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字段,而不是相反。因此,返回对象中的endDateandnumberOfOccurrences字段Recurrence永远不会被设置,因此总是null

于 2012-12-11T14:56:13.937 回答