Подтвердить что ты не робот

API EWS Java: запрос собрания устарел. Календарь не может быть обновлен

Я использую 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 для этой ошибки и не смог найти, почему эта ошибка может произойти со мной.

Что я делаю неправильно?

4b9b3361

Ответ 1

Говоря строго от клиента Outlook, вопрос заключается в списке (хотя и устаревших) потенциально полезных причин, по которым эта ошибка будет сгенерирована.

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

Повторять события, когда начальное событие прошло в прошлом, является распространенным сценарием (наиболее распространенным для моего опыта), когда весь процесс является ручным (т.е. новый участник, добавленный после первого повторного события), хотя в список, который может применяться здесь.

Изменить. Я упоминаю повторы здесь как потенциальную попытку для вашего кода. Проверяет ли getIsOutOfDate() текущее событие или начальный старт шаблона...

MSKB усугубляется этим как текущая проблема, как программно, так и сценарии, просто из графического интерфейса клиента Outlook.

Изменить снова - То есть вы не делаете ничего плохого программно, там долго и разочаровывает историю с передней стороны. Чтобы избежать этого, вам может потребоваться больше ловушки, чем просто ErrorCalendarMeetingRequestIsOutOfDate.

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

(извините, количество ссылок ограничено моим профилем)