EWS Java API:会议请求已过期。日历无法';不能更新

EWS Java API:会议请求已过期。日历无法';不能更新,java,exchange-server,exchangewebservices,ewsjavaapi,Java,Exchange Server,Exchangewebservices,Ewsjavaapi,我正在使用来代表某些用户创建和接受约会。我这样做的方式是发送会议请求,然后在收件人的收件箱上设置收件箱观察者,并接受传入的MeetingRequest项目: import microsoft.exchange.webservices.data.core.service.item.MeetingRequest; void accept(MeetingRequest request) { assert(!request.getIsOutOfDate()); request.accept(f

我正在使用来代表某些用户创建和接受约会。我这样做的方式是发送会议请求,然后在收件人的收件箱上设置收件箱观察者,并接受传入的
MeetingRequest
项目:

import microsoft.exchange.webservices.data.core.service.item.MeetingRequest;

void accept(MeetingRequest request) {
  assert(!request.getIsOutOfDate());
  request.accept(false);
}
但是,当我尝试接受会议请求时,出现以下错误:

microsoft.exchange.webservices.data.core.exception.service.remote.ServiceResponseException: The meeting request is out of date. The calendar couldn't be updated.
    at microsoft.exchange.webservices.data.core.response.ServiceResponse.internalThrowIfNecessary(ServiceResponse.java:278)
    at microsoft.exchange.webservices.data.core.response.ServiceResponse.throwIfNecessary(ServiceResponse.java:267)
    at microsoft.exchange.webservices.data.core.request.MultiResponseServiceRequest.execute(MultiResponseServiceRequest.java:165)
    at microsoft.exchange.webservices.data.core.ExchangeService.internalCreateResponseObject(ExchangeService.java:270)
    at microsoft.exchange.webservices.data.core.service.response.ResponseObject.internalCreate(ResponseObject.java:120)
    at microsoft.exchange.webservices.data.core.service.response.CalendarResponseMessageBase.calendarSave(CalendarResponseMessageBase.java:98)
    at microsoft.exchange.webservices.data.core.service.item.MeetingRequest.internalAccept(MeetingRequest.java:218)
    at microsoft.exchange.webservices.data.core.service.item.MeetingRequest.accept(MeetingRequest.java:184)
这对应于以下错误:。我看了一下,不知道为什么会发生这种错误


我做错了什么?

严格地说,从Outlook客户端的角度来看,这里列出了产生该错误的一些(尽管已经过时)可能有用的原因

重复事件,初始事件在过去是一个常见的场景(我的经验中最常见),整个过程是手动的(即,在第一次重复事件之后添加一个新的与会者),尽管列表中还有其他几个可能适用于此

编辑-我在这里提到的重复可能会使代码出错。getIsOutOfDate()是否检查当前事件或模式的初始开始

MSKB将此作为一个持续存在的问题,无论是编程方面还是仅仅从Outlook客户端GUI的场景方面

再次编辑-也就是说,您在编程方面没有做错任何事情,前端也有漫长而令人沮丧的历史。您可能需要捕获的不仅仅是ErrorCalendarMeetingRequestIsOutOfDate来避免它


(很抱歉,我的个人资料限制了链接的数量)

您好,谢谢您的链接。这些会议根本不是重复发生的事件。与MSKB的古老链接还有其他几种场景,既有真实的特征,也有其他可复制的奇怪之处。故障排除的要点是,它正在发出已知由这些事情之一导致的错误,事实上或错误……我的下一个最佳猜测是(错误的)委托和所有权问题。您需要捕获的不仅仅是ErrorCalendarMeetingRequestIsOutOfDate来识别它。您是否收到每个用户的错误?你试过使用预约课程吗?或者,在获取MeetingRequest对象和接受它之间,底层对象是服务器上的更改。确保没有这样的延误。。。作为测试,检查其“LastModifiedTime”属性,而不是调用“accept”。然后从服务器重新获取对象并再次检查其“LastModifiedTime”属性。它们不同吗?