Зашифруйте приложение Java с помощью примера Cloud KMS

https://codelabs.developers.google.com/codelabs/cloud-bookshelf-java-cloud-kms/index.html#0

После загрузки дополнительных файлов приложения "Книжная полка" появляется следующая ошибка (шаг 7)

[ОШИБКА] Не удалось выполнить цель org.eclipse.jetty: jetty-maven-plugin: 9.3.8.v20160314: run-exploded (default-cli) на книжной полке проекта-3: выполнение default-cli цели org.eclipse.jetty : jetty-maven-plugin: 9.3.8.v20160314: run-exploded failed: несовместимость API обнаружена при выполнении org.eclipse.jetty: jetty-maven-plugin: 9.3.8.v20160314: run-exploded: java.lang .NoSuchMethodError: com.google.cloud.ServiceOptions. (Ljava / lang / Class; Ljava / lang / Class; Lcom / google / cloud / ServiceOptions $ Builder; Lcom / google / cloud / ServiceDefaults;)

https://codelabs.developers.google.com/codelabs/cloud-bookshelf-java-cloud-kms/index.html#0


person KMS KMS    schedule 26.03.2018    source источник
comment
Спасибо за вопрос! На прошлой неделе мы обнаружили в этом вопросе что в этом примере используется устаревшая версия API. Текущая версия - v1. Мы зарегистрировали ошибку, чтобы обновить документацию и кодовую лабораторию, и я спрашиваю коллегу, что делать тем временем правильно.   -  person Tim Dierks    schedule 26.03.2018
comment
Большое спасибо Тим   -  person KMS KMS    schedule 26.03.2018


Ответы (1)


как упоминал Тим, вы получаете эту ошибку, потому что эта codelab в настоящее время инструктирует пользователей загрузить более старую версию библиотеки KMS (v1beta1). Вы можете увидеть это в файле pom.xml в загруженном сегменте GCS для артефакта google-api-services-cloudkms, версия которого - v1beta1-rev1-1.22.0.

Чтобы решить эту проблему, отредактируйте файл pom.xml в корзине, чтобы он указывал на текущую версию v1. Вы можете найти текущую версию здесь: https://mvnrepository.com/artifact/com.google.apis/google-api-services-cloudkms. В то время, когда я пишу это, это v1-rev41-1.23.0.

Текущий:

<dependency>
  <groupId>com.google.apis</groupId>
  <artifactId>google-api-services-cloudkms</artifactId>
  <version>v1beta1-rev1-1.22.0</version>
</dependency>

Исправить

<dependency>
  <groupId>com.google.apis</groupId>
  <artifactId>google-api-services-cloudkms</artifactId>
  <version>v1-rev41-1.23.0</version>
</dependency>

Вам также потребуется разрешить все ссылки v1beta1 внутри src / main / java / com / example / getstarted / util / CloudKeyManagementServiceHelper.java.

Для получения дополнительной информации и руководств по использованию Google Cloud KMS Java я бы предложил посмотреть наш образцы Java.

Спасибо

person Whiteout    schedule 26.03.2018