Używam Microsoft EWS Java API do tworzenia i akceptowania spotkań w imieniu niektórych użytkowników. Droga Robię to wysyłając wezwanie na spotkanie, a następnie utworzenie obserwatorów skrzynka skrzynki odbiorcy i zaakceptowaniu przychodzące MeetingRequest
przedmiot:EWS Java API: Żądanie spotkania jest nieaktualne. Nie można zaktualizować kalendarza.
import microsoft.exchange.webservices.data.core.service.item.MeetingRequest;
void accept(MeetingRequest request) {
assert(!request.getIsOutOfDate());
request.accept(false);
}
Jednak uzyskać ten błąd, gdy próbuję przyjąć zaproszenie na spotkanie :
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)
To odpowiada temu błędowi: ErrorMeetingRequestIsOutOfDate
. Spojrzałem na MSDN for this error i nie mogłem znaleźć przyczyny tego błędu.
Co robię źle?
Czy otrzymujesz błąd dla każdego użytkownika? Czy próbowałeś użyć klasy Powołanie [bezpośrednio] (https://msdn.microsoft.com/en-us/library/office/dd633648 (v = exchg.80) .aspx)? Lub, być może, pomiędzy pobieraniem obiektu MeetingRequest a jego akceptacją, podstawowym obiektem są zmiany na serwerze. Upewnij się, że nie ma takiego opóźnienia ... Jako test zamiast wywoływania "accept", sprawdź jego właściwość "LastModifiedTime". Następnie ponownie pobierz obiekt z serwera i ponownie sprawdź jego właściwość "LastModifiedTime". Czy oni są inni? –