«java.lang.ClassCastException» возвращается при создании событий

#java #sdk #microsoft-graph-api

#java #sdk #microsoft-graph-api

Вопрос:

Я пытаюсь создать событие с помощью Microsoft Graph. Иногда я получаю ClassCastException, но я не знаю, почему В каком случае «двоичный ответ» возвращается при создании событий?

Мой код выглядит так:

 ClientCredentialProvider authProvider = new GraphAuthProvider(accessToken);
IGraphServiceClient graphClient = GraphServiceClient
                .builder()
                .authenticationProvider(authProvider)
                .buildClient();

Event event = graphClient
                .users(USER)
                .events()
                .buildRequest(requestOptions)
                .post(event);
  

Я получил эту ошибку:

 java.io.BufferedInputStream cannot be cast to com.microsoft.graph.models.extensions.Event"
java.lang.ClassCastException: java.io.BufferedInputStream cannot be cast to com.microsoft.graph.models.extensions.Event
        at com.microsoft.graph.requests.extensions.EventRequest.post(EventRequest.java:112)
        at com.microsoft.graph.requests.extensions.EventCollectionRequest.post(EventCollectionRequest.java:67)
  

Когда graphClient.getLogger().setLoggingLevel(LoggerLevel.DEBUG); добавляется:

 Starting to send request, URL https://graph.microsoft.com/v1.0/users/USER/events
com.microsoft.graph.logger.DefaultLogger logDebug
Request Method PATCH
com.microsoft.graph.logger.DefaultLogger logDebug
Sending com.microsoft.graph.models.extensions.Event as request body
com.microsoft.graph.logger.DefaultLogger logDebug
Serializing type Event
com.microsoft.graph.logger.DefaultLogger logDebug
Response code 200, OK
com.microsoft.graph.logger.DefaultLogger logDebug
Response binary
com.microsoft.graph.logger.DefaultLogger logDebug
Deserializing type Event
  

Просматривая журнал с SDK, я предполагаю, что если будет возвращен «двоичный ответ», возникнет вышеуказанная ошибка.
Это происходит только на удаленном компьютере, и я не могу отлаживать в библиотеке.
В каком случае «двоичный ответ» возвращается при создании событий?

Это библиотека, которую я использую.

 <dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>msal4j</artifactId>
    <version>1.4.0</version>
</dependency>
<dependency>
    <groupId>com.microsoft.graph</groupId>
    <artifactId>microsoft-graph</artifactId>
    <version>1.7.0</version>
</dependency>
  

Извините, если мой английский трудно понять.
Было бы полезно, если бы вы дали мне ответ.

Комментарии:

1. Я попытался создать событие с помощью MS Graph explorer / POSTMAN, но мне не удалось исправить проблему. Итак, мне интересно, вы пробовали это?

2. Я пробовал с кодом Java, и мне также не удалось исправить проблему.

3. Этого не произошло при использовании microsoft-graph 2.3.0. Это произошло в версии 1.7.0, как описано, и причина неизвестна.

4. Рад слышать, и я бы рекомендовал вам использовать только последние сборки / SDK. Похоже, это может быть ошибка или регрессия, которые могли быть исправлены в более поздних версиях. Вот почему я всегда использую последние SDK / сборки и смотрю, можете ли вы исправить проблему.

5. Перемещаем это в ответ. подумайте о том, чтобы проголосовать за это; так что это может быть полезно другим.

Ответ №1:

Я бы рекомендовал вам использовать только последние сборки / SDK, а не старые сборки. Даже если это может быть ошибка или регрессия, которые могли быть исправлены в более поздних версиях. Вот почему я всегда использую последние SDK / сборки и смотрю, можете ли вы исправить проблему. Рад, что вы попробовали это, и это сработало для вас.