В настоящее время в моем проекте Grails (версия Grails 2.5.1) я использую плагин amazonaws версии 1.11.339 для передачи данных в поток kinesis. Теперь мне нужно сохранить данные в кэше Redis, и я использую плагин Redisson версии 3.10.1 для сохранения данных в кэше Redis. После использования плагина redisson я не могу передать данные в поток kinesis из-за зависимостей jackson между kinesis и redisson. Я получаю следующие журналы ошибок при отправке данных в поток kinesis.
*
Ошибка | Вызвано: java.lang.RuntimeException: Джексон jackson-core/jackson-dataformat-cbor несовместимая версия библиотеки обнаружено. У вас есть два возможных решения: 1) Убедитесь, что com.fasterxml.jackson.core: jackson-core & com.fasterxml.jackson.dataformat:jackson-dataformat-cbor библиотеки на ваш путь к классам имеет тот же номер версии 2) Отключить CBOR wire-протокол, передав свойство -Dcom.amazonaws.sdk.disableCbor или установка переменной окружения AWS_CBOR_DISABLE (предупреждение, что это может влияют на производительность) Ошибка | в com.amazonaws.protocol.json.SdkCborGenerator.getBytes(SdkCborGenerator.java:68) Ошибка | в com.amazonaws.services.kinesis.model.transform.PutRecordRequestMarshaller.marshall(PutRecordRequestMarshaller.java:80) Ошибка | ... еще 149 Ошибка | Вызвано: java.lang.NoSuchMethodError: com.fasterxml.jackson.dataformat.cbor.CBORGenerator.getOutputContext()Lcom/fasterxml/jackson/core/json/JsonWriteContext; Ошибка | в com.fasterxml.jackson.dataformat.cbor.CBORGenerator.close(CBORGenerator.java:903) Ошибка | в com.amazonaws.protocol.json.SdkJsonGenerator.close(SdkJsonGenerator.java:253) Ошибка | в com.amazonaws.protocol.json.SdkJsonGenerator.getBytes(SdkJsonGenerator.java:268) Ошибка | в com.amazonaws.protocol.json.SdkCborGenerator.getBytes(SdkCborGenerator.java:66) Ошибка | ... еще 150
Я попытался исключить зависимости Джексона из плагина Redisson. Но тогда он не позволял сохранять данные в кеш Redis. Не могли бы вы предложить совместимые версии для amazonaws и redisson, чтобы они решили проблему и работали должным образом?
Если зависимость Джексона от обоих плагинов конфликтует, вы можете попробовать любой из способов.
Вы можете либо исключить зависимость jackson из одного из плагинов (возможно, вы можете исключить ее из недавно добавленных плагинов, т.е. плагина redisson). Попробуйте очистить зависимость и перезапустить проект. Возможно, ваша зависимость не была очищена, и это вызывает проблему при сохранении данных в кеше.
Какую область вы используете для добавления этой зависимости? Если оба они используются как compile. Вы можете попробовать, изменив область действия плагина redisson на время выполнения.