2017-02-24 9 views
1

Ich versuche, eine JDBC-Verbindung zu einer Google Cloud Spanner-Datenbank zu öffnen, aber ich bekomme die folgende Fehlermeldung:Fehler beim Versuch, eine JDBC-Verbindung zu Google Cloud Spanner zu öffnen

java.lang.IllegalArgumentException: Für diesen -Dienst ist eine Projekt-ID erforderlich, die jedoch nicht vom Builder oder der -Umgebung ermittelt werden konnte. Bitte legen Sie eine Projekt-ID mit dem Builder fest.

Meine JDBC-URL lautet wie folgt:

jdbc:cloudspanner://localhost;Project=project-id;Instance=instance-id;Database=database-name;PvtKeyPath=path-to-key-file 

Wenn ich die Project Eigenschaft aus der URL entfernen, erhalte ich die folgende Ausnahme:

java.sql.SQLNonTransientConnectionException: [Simba ] JDBC Verbindung verweigert: [Simba] JDBC Erforderliche Verbindungstaste (n): Projekt; [Simba] JDBC Optional Anschluss Taste (n): Sprache, Modus

So scheint es, dass der Fahrer tut mein Projekt ID abholen, aber irgendwie funktioniert es nicht akzeptieren. Ich habe überprüft und überprüft, dass meine Projekt-ID gleich der Projekt-ID ist, die ich bei Google erstellt habe. Ich habe auch versucht, den Wert für den Projektnamen anstelle der Projekt-ID zu ändern, aber ohne Erfolg.

Hat jemand ein URL-Beispiel, das funktioniert?

EDIT: Es scheint mit dem Verweis auf die private Schlüsseldatei verwandt zu sein. Wenn ich eine Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS mache, die auf meine private Schlüsseldatei verweist, kann die Verbindung erfolgreich hergestellt werden. Wenn ich diese Umgebungsvariable entferne, erhalte ich die obige Ausnahme.

+0

Related: http://StackOverflow.com/Questions/42287427/google-spanner-Jdbc-connection-strings –

+0

Ich bekomme das gleiche Problem. Es scheint, dass der Parameter ab der aktuellen Version 1.0.4 nicht funktionsfähig ist. – abhillman

+0

Dieses Problem wurde in der Version 1.0.6 des JDBC-Treibers nicht behoben. Bitte versuchen Sie es. –

Antwort

0

Da der JDBC-Treiber von Google stark eingeschränkt ist (unterstützt keine DML- und DDL-Statemets), habe ich meinen eigenen JDBC-Treiber geschrieben. Der Treiber wurde für die Arbeit mit JPA/Hibernate-fähigen Anwendungen entwickelt. Der Treiber kann hier gefunden werden:

Dieser Treiber unterstützt die gleichen URLs wie der von Google bereitgestellte Treiber, einschließlich der PvtKeyPath-Eigenschaft.

1

Welche Version des Treibers verwenden Sie? Wenn Sie in der neuesten Version den Pfad zur Anmeldeinformationsdatei in der URL angeben, müssen Sie GOOGLE_APPLICATION_CREDENTIALS nicht festlegen.

+0

Ich verwende die Version 1.0.4.1005 des JDBC-Treibers (die Version Java 8, JDBC 4.2) und Version 0.9.3-Beta der Google Cloud Spanner-Client-Bibliothek. –

+0

Dieses Problem wurde in der Version 1.0.6.1007 behoben. Bitte versuchen Sie es. –

Verwandte Themen