【问题标题】:EWS Java API: The meeting request is out of date. The calendar couldn't be updatedEWS Java API:会议请求已过期。无法更新日历
【发布时间】:2016-04-12 08:37:57
【问题描述】:

我正在使用Microsoft EWS Java API 代表某些用户创建和接受约会。我这样做的方式是发送会议请求,然后在收件人的收件箱上设置收件箱观察者并接受传入的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)

这对应于这个错误:ErrorMeetingRequestIsOutOfDate。我查看了MSDN for this error 并找不到为什么这个错误会发生在我身上。

我做错了什么?

【问题讨论】:

  • 您是否收到每个用户的错误?您是否尝试过使用 Appointment 类directly?或者,可能在获取 MeetingRequest 对象和接受它之间,底层对象是服务器上的更改。确保没有这样的延迟...作为测试,不要调用“accept”,而是检查其“LastModifiedTime”属性。然后从服务器重新获取对象并再次检查其“LastModifiedTime”属性。它们有什么不同吗?

标签: java exchange-server exchangewebservices ewsjavaapi


【解决方案1】:

从问题的 Outlook 客户端严格来说,这里列出了生成该错误的潜在有用原因(尽管已过时)。

https://support.microsoft.com/en-us/kb/899704

重复活动,其中初始活动在过去是一种常见情况(我的经验中最常见),当整个过程是手动的(即在第一次重复活动之后添加新参与者),尽管在可能适用于此处的列表。

编辑 - 我在这里提到重复作为您的代码的潜在绊脚石。 getIsOutOfDate() 是检查当前事件还是模式的初始开始...

MSKB 充斥着此问题,这是一个持续存在的问题,无论是通过编程方式还是仅来自 Outlook 客户端 GUI 的场景。

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

http://www.experts-exchange.com/questions/24578557/This-Request-is-Out-of-Date.html

(对不起,我的个人资料限制了链接数量)

【讨论】:

  • 您好,感谢您的链接。这些会议根本不是经常性事件。
  • 与 MSKB 的古老链接还有其他几个场景,既有真实的特征,也有其他可重现的奇怪之处。故障排除点是它发出了已知的错误,实际上或错误是由这些事情之一引起的……我的下一个最佳猜测是(错误的)问题委派和所有权。您需要捕获的不仅仅是 ErrorCalendarMeetingRequestIsOutOfDate 来识别它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多