Error with custom keyword - connection to MSSQL DB

I create some keyword to connect with DB, use your example
This is my keyword

package com.dbmssql

import static com.kms.katalon.core.checkpoint.CheckpointFactory.findCheckpoint
import static com.kms.katalon.core.testcase.TestCaseFactory.findTestCase
import static com.kms.katalon.core.testdata.TestDataFactory.findTestData
import static com.kms.katalon.core.testobject.ObjectRepository.findTestObject
import com.kms.katalon.core.checkpoint.Checkpoint as Checkpoint
import com.kms.katalon.core.cucumber.keyword.CucumberBuiltinKeywords as CucumberKW
import com.kms.katalon.core.mobile.keyword.MobileBuiltInKeywords as Mobile
import com.kms.katalon.core.model.FailureHandling as FailureHandling
import com.kms.katalon.core.testcase.TestCase as TestCase
import com.kms.katalon.core.testdata.TestData as TestData
import com.kms.katalon.core.testobject.TestObject as TestObject
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS
import com.kms.katalon.core.webui.keyword.WebUiBuiltInKeywords as WebUI
import internal.GlobalVariable as GlobalVariable
import com.kms.katalon.core.annotation.Keyword
import java.sql.Connection
import java.sql.DriverManager
import java.sql.ResultSet
import java.sql.Statement

public class MsSqlKeyword {

	private static Connection connection = null;

	@Keyword
	def connectDB(String url, String port, String dbname, String username, String password){
	
		String conn = "jdbc:microsoft:sqlserver://" + url + ":" + port + ":" + dbname + username + password
		+ "encrypt=true;"
		+ "trustServerCertificate=false;"
		+ "hostNameInCertificate=*.database.windows.net;"
		+ "loginTimeout=30;"

		if (connection != null && !connection.isClosed()){
			connection.close()
		}

		connection = DriverManager.getConnection(conn, username, password)
		return connection
	}

	@Keyword
	def executeQuerySelect(String queryString){
		Statement stm = connection.createStatement()
		ResultSet rs = stm.executeQuery(queryString)
		return rs
	}

	@Keyword
	def closeDatabseConnection(){
		if(connection != null && !connection.isClosed()){
			connection.close()
		}
	}

	@Keyword
	def executeQuery(String queryString){
		Statement stm = connection.createStatement()
		boolean result = stm.execute(queryString)
		return result
	}
}

Then I call it from my test case and have error, I don’t understand what’s wrong

2-26-2018 12:50:39 PM Test Cases/Registration

Elapsed time: 1,199s

com.dbmssql.MsSqlKeyword.invokeMethod:0

Test Cases/Registration FAILED.
Reason:
org.codehaus.groovy.runtime.InvokerInvocationException: groovy.lang.MissingMethodException: No signature of method: java.lang.String.positive() is applicable for argument types: () values: []
Possible solutions: notify(), tokenize(), size(), size()
	at com.dbmssql.MsSqlKeyword.invokeMethod(MsSqlKeyword.groovy)
	at com.kms.katalon.core.main.CustomKeywordDelegatingMetaClass.invokeStaticMethod(CustomKeywordDelegatingMetaClass.java:49)
	at Registration.run(Registration:31)
	at com.kms.katalon.core.main.ScriptEngine.run(ScriptEngine.java:194)
	at com.kms.katalon.core.main.ScriptEngine.runScriptAsRawText(ScriptEngine.java:119)
	at com.kms.katalon.core.main.TestCaseExecutor.runScript(TestCaseExecutor.java:328)
	at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:319)
	at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:298)
	at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:290)
	at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:224)
	at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:106)
	at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:97)
	at com.kms.katalon.core.main.TestCaseMain$runTestCase$0.call(Unknown Source)
	at TempTestCase1545817836752.run(TempTestCase1545817836752.groovy:22)
Caused by: groovy.lang.MissingMethodException: No signature of method: java.lang.String.positive() is applicable for argument types: () values: []
Possible solutions: notify(), tokenize(), size(), size()
	at com.dbmssql.MsSqlKeyword.connectDB(MsSqlKeyword.groovy:31)
	at com.dbmssql.MsSqlKeyword.invokeMethod(MsSqlKeyword.groovy)
	at com.kms.katalon.core.main.CustomKeywordDelegatingMetaClass.invokeStaticMethod(CustomKeywordDelegatingMetaClass.java:49)
	at Script1545660512310.run(Script1545660512310.groovy:31)
	... 11 more

You are concatenating strings incorrectly.

String conn = "jdbc:microsoft:sqlserver://" + url + ":" + port + ":" + dbname + username + password +
"encrypt=true;" +
"trustServerCertificate=false;" +
"hostNameInCertificate=*.database.windows.net;" +
"loginTimeout=30;"

thanks, it’s working

Can any one give me the correct string