Я пытаюсь открыть JDBC-соединение с базой данных Google Cloud Spanner, но получаю следующее сообщение об ошибке:
java.lang.IllegalArgumentException: для этой службы требуется идентификатор проекта, но он не может быть определен с помощью построителя или среды. Установите идентификатор проекта с помощью конструктора.
Мой URL-адрес JDBC выглядит следующим образом:
jdbc:cloudspanner://localhost;Project=project-id;Instance=instance-id;Database=database-name;PvtKeyPath=path-to-key-file
Если я удалю свойство Project
из URL-адреса, я получу следующее исключение:
java.sql.SQLNonTransientConnectionException: [Simba] Соединение JDBC отклонено: [Simba] Требуемые ключи соединения JDBC: Проект; [Simba] Дополнительные ключи подключения JDBC: язык, режим
Получается, что драйвер забирает мой идентификатор проекта, но почему-то не принимает его. Я проверил и дважды проверил, что мой идентификатор проекта совпадает с идентификатором проекта, который я создал в Google, я также пытался изменить значение имени проекта вместо идентификатора проекта, но безрезультатно.
У кого-нибудь есть пример URL-адреса, который работает?
РЕДАКТИРОВАТЬ: похоже, это связано со ссылкой на файл закрытого ключа. Если я сделаю переменную среды GOOGLE_APPLICATION_CREDENTIALS, указывающую на мой файл закрытого ключа, соединение можно будет успешно установить. Если я удалю эту переменную среды, я получу вышеуказанное исключение.