2016-01-07 12 views
17

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?

+0

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? –

Odpowiedz

1

Mówiąc ściśle od klienta Outlook na końcu pytania tutaj jest lista (choć nieaktualne) potencjalnie użyteczne powody, dla których błąd zostanie wygenerowany.

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

powtarzania zdarzenia, gdzie początkowy Impreza w przeszłości jest wspólny scenariusz (najczęściej do mojego doświadczenia), kiedy cały proces jest instrukcja (czyli nowy uczestnik dodany po pierwszym powtórzonym), chociaż istnieje więcej na liście, które mogą mieć tutaj zastosowanie.

Edytuj - Wspominam tutaj o powtórzeniach jako potencjalnej podróży do Twojego kodu. Czy funkcja getIsOutOfDate() sprawdza bieżące zdarzenie lub początkowe uruchomienie wzorca ...

MSKB jest zaśmiecony tym problemem, zarówno programowo, jak i scenariuszami po prostu z interfejsu GUI klienta programu Outlook.

Edytuj ponownie - To znaczy, że nic nie robisz źle programowo, tam też długa i frustrująca historia z przodu. Być może trzeba przechwycić więcej niż tylko ErrorCalendarMeetingRequestIsOutOfDate, aby tego uniknąć.

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

(liczba przykro linków ograniczanych moim profilu)

+0

Cześć, dziękuję za linki. Te spotkania wcale NIE są wydarzeniami cyklicznymi. – pathikrit

+0

Starożytny link do MSKB miał kilka innych scenariuszy, zarówno rzeczywistych funkcji i innych powtarzalnych dziwności. Punkt rozwiązywania problemów polega na tym, że wysyła błąd, o którym wiadomo, że został spowodowany, w rzeczywistości lub przez pomyłkę, przez jedną z tych rzeczy ... Moim następnym zdaniem byłoby (błędne) delegowanie i własność. Aby go zidentyfikować, musisz przechwycić więcej niż tylko ErrorCalendarMeetingRequestIsOutOfDate. –

Powiązane problemy