2016-04-26 10 views
0

Ich habe versucht, globale Eigenschaft Wert in Verbindung zu verwenden, so dass ich es von einem Ort ändern kann, und es wird in allen meinem Skript gelten. Dies ist meine Verbindungszeichenfolge und es funktioniert gut, wenn ich die IP setzen direkt im StringSo verwenden Sie globale Eigenschaft Wert in Verbindungszeichenfolge mit groovy

def dbName = context.expand('${DB_Name}') 
def dbUser = context.expand('${DB_Username}') 
def dbPass = context.expand('${DB_Password}') 
def con = Sql.newInstance("jdbc:sqlserver://192.168.111.111:1433;" + "databaseName=" + dbName, dbUser, dbPass, 'com.microsoft.sqlserver.jdbc.SQLServerDriver') 

Aber wenn ich die globalen Eigenschaften setzen, wirft es Fehler „Der TCP/IP-Verbindung zum Host‚192.168.111.111 ', Port 1433 ist fehlgeschlagen. Fehler: "null." Überprüfen Sie die Verbindungseigenschaften. Stellen Sie sicher, dass eine Instanz von SQL Server auf dem Host ausgeführt wird und TCP/IP-Verbindungen am Port akzeptieren. Stellen Sie sicher, dass TCP-Verbindungen zum Port nicht von einer Firewall blockiert werden. "

def dbServer = context.expand('${DB_Server}') 
def dbPort = context.expand('${DB_Port}') 
def dbName = context.expand('${DB_Name}') 
def dbUser = context.expand('${DB_Username}') 
def dbPass = context.expand('${DB_Password}') 
def con = Sql.newInstance("jdbc:sqlserver://'$dbServer':1433;" + "databaseName=" + dbName, dbUser, dbPass, 'com.microsoft.sqlserver.jdbc.SQLServerDriver') 

Antwort

1

nicht sicher, warum Sie die $dbServer Adresse in Anführungszeichen gesetzt haben, sollte es

def con = Sql.newInstance("jdbc:sqlserver://$dbServer:1433;" + "databaseName=" + dbName, dbUser, dbPass, 'com.microsoft.sqlserver.jdbc.SQLServerDriver') 

oder (Templating all die Dinge, nicht nur den Server)

def con = Sql.newInstance("jdbc:sqlserver://$dbServer:1433;databaseName=$dbName", dbUser, dbPass, 'com.microsoft.sqlserver.jdbc.SQLServerDriver') 
+0

oops. Dummer Fehler. Vielen Dank :) – rAJ