Can't execute DELETE method for RestfulAPI

Hello there,

Since version 5.8 I’m not able to send DELETE method for my API tests. Console says, that Katalon is Unable to send request (Root cause: java.lang.NullPointerException).

Full log:

10-10-2018 12:27:24 PM - [START]  - Start action : Statement - response_raw = CustomKeywords.api.RestMethods.DELETE(endpoint, id)
DELETE http://IP_ADDRESS/api/images/e09c52c49d2a
10-10-2018 12:27:24 PM - [INFO]   - Checking request object
10-10-2018 12:27:24 PM - [END]    - End action : Statement - response_raw = CustomKeywords.api.RestMethods.DELETE(endpoint, id)
10-10-2018 12:27:24 PM - [FAILED] - Test Cases/API/Images/Images_DELETE_neg FAILED because (of) (Stack trace: com.kms.katalon.core.exception.StepFailedException: Unable to send request (Root cause: java.lang.NullPointerException)
    at com.kms.katalon.core.keyword.internal.KeywordMain.stepFailed(KeywordMain.groovy:36)
    at com.kms.katalon.core.keyword.internal.KeywordMain.stepFailed(KeywordMain.groovy)
    at com.kms.katalon.core.keyword.internal.KeywordMain.runKeyword(KeywordMain.groovy:56)
    at com.kms.katalon.core.webservice.keyword.builtin.SendRequestKeyword.sendRequest(SendRequestKeyword.groovy:43)
    at com.kms.katalon.core.webservice.keyword.builtin.SendRequestKeyword.execute(SendRequestKeyword.groovy:38)
    at com.kms.katalon.core.keyword.internal.KeywordExecutor.executeKeywordForPlatform(KeywordExecutor.groovy:53)
    at com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords.sendRequest(WSBuiltInKeywords.groovy:40)
    at com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords$sendRequest.call(Unknown Source)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
    at api.RestMethods.DELETE(RestMethods.groovy:77)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1215)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1024)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:812)
    at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:144)
    at api.RestMethods.invokeMethod(RestMethods.groovy)
    at com.kms.katalon.core.main.CustomKeywordDelegatingMetaClass.invokeStaticMethod(CustomKeywordDelegatingMetaClass.java:46)
    at org.codehaus.groovy.runtime.callsite.StaticMetaClassSite.call(StaticMetaClassSite.java:53)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133)
    at Script1530881045929.run(Script1530881045929.groovy:22)
    at com.kms.katalon.core.main.ScriptEngine.run(ScriptEngine.java:183)
    at com.kms.katalon.core.main.ScriptEngine.runScriptAsRawText(ScriptEngine.java:108)
    at com.kms.katalon.core.main.TestCaseExecutor.runScript(TestCaseExecutor.java:294)
    at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:285)
    at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:264)
    at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:256)
    at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:200)
    at com.kms.katalon.core.main.TestSuiteExecutor.accessTestCaseMainPhase(TestSuiteExecutor.java:129)
    at com.kms.katalon.core.main.TestSuiteExecutor.accessTestSuiteMainPhase(TestSuiteExecutor.java:112)
    at com.kms.katalon.core.main.TestSuiteExecutor.execute(TestSuiteExecutor.java:81)
    at com.kms.katalon.core.main.TestCaseMain.startTestSuite(TestCaseMain.java:142)
    at com.kms.katalon.core.main.TestCaseMain$startTestSuite$0.call(Unknown Source)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:141)
    at TempTestSuite1539167183094.run(TempTestSuite1539167183094.groovy:36)
    at groovy.lang.GroovyShell.runScriptOrMainOrTestOrRunnable(GroovyShell.java:263)
    at groovy.lang.GroovyShell.run(GroovyShell.java:518)
    at groovy.lang.GroovyShell.run(GroovyShell.java:507)
    at groovy.ui.GroovyMain.processOnce(GroovyMain.java:653)
    at groovy.ui.GroovyMain.run(GroovyMain.java:384)
    at groovy.ui.GroovyMain.process(GroovyMain.java:370)
    at groovy.ui.GroovyMain.processArgs(GroovyMain.java:129)
    at groovy.ui.GroovyMain.main(GroovyMain.java:109)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:109)
    at org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:131)
)

DELETE method is written in groovy. I don’t use Object repository for that.

RestMethods.groovy

	/**
	 * Execute DELETE method call to API
	 * @param endpoint
	 * @param id
	 */
	@Keyword
	def DELETE(String endpoint, String id) {
		def request = setupReq(endpoint + id, 'DELETE')
		def response_raw = WS.sendRequest(request)
		println(response_raw.getResponseBodyContent())
		return response_raw
	}

setupReq

	/**
	 * Setup request
	 * @param method
	 * @return request
	 */
	def setupReq(String endpoint, String method, String body=null, String auth=null) {
		RequestObject request = new RequestObject()
		request.setRestUrl('http://' + GlobalVariable.ip + '/api/' + endpoint)
		request.setRestRequestMethod(method)
		if(body) {
			request.setHttpBody(body)
			println(method + ' ' + request.getRestUrl() + ' ' + request.getHttpBody())
		} else {
			println(method + ' ' + request.getRestUrl())
		}

		'Prepare HTTP Header'
		if(!GlobalVariable.token) {
			KeywordUtil.markErrorAndStop('ERROR: no token! not logged in?')
			return
		}

		ArrayList<TestObjectProperty> HTTPHeader = new ArrayList<TestObjectProperty>() //Create new array list
		HTTPHeader.add(new TestObjectProperty('X-Auth-Token', ConditionType.EQUALS, GlobalVariable.token)) //Prepare HTTP Header
		if (auth){
			auth = "Basic " + auth.bytes.encodeBase64().toString()
			HTTPHeader.add(new TestObjectProperty('Authorization', ConditionType.EQUALS, auth)) //Prepare HTTP Header
		}
		HTTPHeader.add(new TestObjectProperty('Accept-Language', ConditionType.EQUALS, 'en')) //Prepare HTTP Header
		request.setHttpHeaderProperties(HTTPHeader) //Send token and basic auth in HTTP header

		return request
	}

There was no problems with previous versions of Katalon.
Something important was changed since new version of Katalon?

1 Like

I am facing the exact same issue, also get NullPointerException when trying to DELETE

Any solution for this problem?

I am using now the Web Service Request Keyword and it works like a charm. I used following links to implement DELETE: https://docs.katalon.com/katalon-studio/docs/restful.html
https://docs.katalon.com/katalon-studio/docs/using-web-services-in-a-test-case.html

I am facing the exact same issue getting NullPointerException when trying to DELETE.
GET POST working fine.
Version 5.8.1

Mariusz said:

Hello there,

Since version 5.8 I’m not able to send DELETE method for my API tests. Console says, that Katalon is Unable to send request (Root cause: java.lang.NullPointerException).

Full log:

10-10-2018 12:27:24 PM - [START]  - Start action : Statement - response_raw = CustomKeywords.api.RestMethods.DELETE(endpoint, id)

DELETE http://IP_ADDRESS/api/images/e09c52c49d2a
10-10-2018 12:27:24 PM - [INFO] - Checking request object
10-10-2018 12:27:24 PM - [END] - End action : Statement - response_raw = CustomKeywords.api.RestMethods.DELETE(endpoint, id)
10-10-2018 12:27:24 PM - [FAILED] - Test Cases/API/Images/Images_DELETE_neg FAILED because (of) (Stack trace: com.kms.katalon.core.exception.StepFailedException: Unable to send request (Root cause: java.lang.NullPointerException)
at com.kms.katalon.core.keyword.internal.KeywordMain.stepFailed(KeywordMain.groovy:36)
at com.kms.katalon.core.keyword.internal.KeywordMain.stepFailed(KeywordMain.groovy)
at com.kms.katalon.core.keyword.internal.KeywordMain.runKeyword(KeywordMain.groovy:56)
at com.kms.katalon.core.webservice.keyword.builtin.SendRequestKeyword.sendRequest(SendRequestKeyword.groovy:43)
at com.kms.katalon.core.webservice.keyword.builtin.SendRequestKeyword.execute(SendRequestKeyword.groovy:38)
at com.kms.katalon.core.keyword.internal.KeywordExecutor.executeKeywordForPlatform(KeywordExecutor.groovy:53)
at com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords.sendRequest(WSBuiltInKeywords.groovy:40)
at com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords$sendRequest.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
at api.RestMethods.DELETE(RestMethods.groovy:77)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:93)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1215)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1024)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:812)
at groovy.lang.DelegatingMetaClass.invokeMethod(DelegatingMetaClass.java:144)
at api.RestMethods.invokeMethod(RestMethods.groovy)
at com.kms.katalon.core.main.CustomKeywordDelegatingMetaClass.invokeStaticMethod(CustomKeywordDelegatingMetaClass.java:46)
at org.codehaus.groovy.runtime.callsite.StaticMetaClassSite.call(StaticMetaClassSite.java:53)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:133)
at Script1530881045929.run(Script1530881045929.groovy:22)
at com.kms.katalon.core.main.ScriptEngine.run(ScriptEngine.java:183)
at com.kms.katalon.core.main.ScriptEngine.runScriptAsRawText(ScriptEngine.java:108)
at com.kms.katalon.core.main.TestCaseExecutor.runScript(TestCaseExecutor.java:294)
at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:285)
at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:264)
at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:256)
at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:200)
at com.kms.katalon.core.main.TestSuiteExecutor.accessTestCaseMainPhase(TestSuiteExecutor.java:129)
at com.kms.katalon.core.main.TestSuiteExecutor.accessTestSuiteMainPhase(TestSuiteExecutor.java:112)
at com.kms.katalon.core.main.TestSuiteExecutor.execute(TestSuiteExecutor.java:81)
at com.kms.katalon.core.main.TestCaseMain.startTestSuite(TestCaseMain.java:142)
at com.kms.katalon.core.main.TestCaseMain$startTestSuite$0.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:141)
at TempTestSuite1539167183094.run(TempTestSuite1539167183094.groovy:36)
at groovy.lang.GroovyShell.runScriptOrMainOrTestOrRunnable(GroovyShell.java:263)
at groovy.lang.GroovyShell.run(GroovyShell.java:518)
at groovy.lang.GroovyShell.run(GroovyShell.java:507)
at groovy.ui.GroovyMain.processOnce(GroovyMain.java:653)
at groovy.ui.GroovyMain.run(GroovyMain.java:384)
at groovy.ui.GroovyMain.process(GroovyMain.java:370)
at groovy.ui.GroovyMain.processArgs(GroovyMain.java:129)
at groovy.ui.GroovyMain.main(GroovyMain.java:109)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:109)
at org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:131)
)


  

DELETE method is written in groovy. I don't use Object repository for that.  
  
RestMethods.groovy  

/**
* Execute DELETE method call to API
* @param endpoint
* @param id
*/
@Keyword
def DELETE(String endpoint, String id) {
def request = setupReq(endpoint + id, ‘DELETE’)
def response_raw = WS.sendRequest(request)
println(response_raw.getResponseBodyContent())
return response_raw
}


setupReq  

/**
* Setup request
* @param method
* @return request
*/
def setupReq(String endpoint, String method, String body=null, String auth=null) {
RequestObject request = new RequestObject()
request.setRestUrl(‘http://’ + GlobalVariable.ip + ‘/api/’ + endpoint)
request.setRestRequestMethod(method)
if(body) {
request.setHttpBody(body)
println(method + ’ ’ + request.getRestUrl() + ’ ’ + request.getHttpBody())
} else {
println(method + ’ ’ + request.getRestUrl())
}

	'Prepare HTTP Header'
	if(!GlobalVariable.token) {
		KeywordUtil.markErrorAndStop('ERROR: no token! not logged in?')
		return
	}

	ArrayList<TestObjectProperty> HTTPHeader = new ArrayList<TestObjectProperty>() //Create new array list
	HTTPHeader.add(new TestObjectProperty('X-Auth-Token', ConditionType.EQUALS, GlobalVariable.token)) //Prepare HTTP Header
	if (auth){
		auth = "Basic " + auth.bytes.encodeBase64().toString()
		HTTPHeader.add(new TestObjectProperty('Authorization', ConditionType.EQUALS, auth)) //Prepare HTTP Header
	}
	HTTPHeader.add(new TestObjectProperty('Accept-Language', ConditionType.EQUALS, 'en')) //Prepare HTTP Header
	request.setHttpHeaderProperties(HTTPHeader) //Send token and basic auth in HTTP header

	return request
}

  
There was no problems with previous versions of Katalon.  
Something important was changed since new version of Katalon?  
  

  

How about using Web Service Builder instead?

I faced similar issue. It worked when I switch back to older version say 5.7.1 instead of 5.8.0. there is something wrong with the latest version.

Try older version and check

So please inform me which steps you’ve done from your side? There are many cases behind the scene when you said that ‘DELETE method is not working’ (except the author’s post), such as:
- You create a new DELETE request without HTTP Body and it doesn’t work in case of sending a test request directly.
- You create a new DELETE request with HTTP Body included and it doesn’t work in case of using ‘Send Request’ keyword .

Using Web Service Builder could resolve this problem, but is it the only possible solution? Could devs restore functionality that was applied in version < 5.8?

Strange thing…

For tests, I’ve implemented DELETE method from Web Service Builder, and response is the same:

10-24-2018 11:43:29 AM - [START]  - Start action : Statement - builder = new com.kms.katalon.core.testobject.RestRequestObjectBuilder()
10-24-2018 11:43:29 AM - [END]    - End action : Statement - builder = new com.kms.katalon.core.testobject.RestRequestObjectBuilder()
10-24-2018 11:43:29 AM - [START]  - Start action : Statement - requestObject = builder.withRestRequestMethod("DELETE").withRestUrl("http://IP/api/healthcheck/123").build()
10-24-2018 11:43:29 AM - [END]    - End action : Statement - requestObject = builder.withRestRequestMethod("DELETE").withRestUrl("http://IP/api/healthcheck/123").build()
10-24-2018 11:43:29 AM - [START]  - Start action : Statement - response = com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords.sendRequest(requestObject)
10-24-2018 11:43:29 AM - [INFO]   - Checking request object
10-24-2018 11:43:29 AM - [END]    - End action : Statement - response = com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords.sendRequest(requestObject)
10-24-2018 11:43:29 AM - [END]    - End Test Case : Test Cases/API/Healthchecks/Healthchecks_DEL2

10-24-2018 11:43:29 AM - [INFO]   - Checking request object
10-24-2018 11:43:29 AM - [FAILED] - Unable to send request (Root cause: java.lang.NullPointerException)
10-24-2018 11:43:29 AM - [FAILED] - Test Cases/API/Healthchecks/Healthchecks_DEL2 FAILED because (of) (Stack trace: com.kms.katalon.core.exception.StepFailedException: Unable to send request (Root cause: java.lang.NullPointerException)
	at com.kms.katalon.core.keyword.internal.KeywordMain.stepFailed(KeywordMain.groovy:36)
	at com.kms.katalon.core.keyword.internal.KeywordMain.stepFailed(KeywordMain.groovy)
	at com.kms.katalon.core.keyword.internal.KeywordMain.runKeyword(KeywordMain.groovy:56)
	at com.kms.katalon.core.webservice.keyword.builtin.SendRequestKeyword.sendRequest(SendRequestKeyword.groovy:43)
	at com.kms.katalon.core.webservice.keyword.builtin.SendRequestKeyword.execute(SendRequestKeyword.groovy:38)
	at com.kms.katalon.core.keyword.internal.KeywordExecutor.executeKeywordForPlatform(KeywordExecutor.groovy:53)
	at com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords.sendRequest(WSBuiltInKeywords.groovy:40)
	at com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords$sendRequest.call(Unknown Source)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
	at Script1540372446548.run(Script1540372446548.groovy:28)
	at com.kms.katalon.core.main.ScriptEngine.run(ScriptEngine.java:183)
	at com.kms.katalon.core.main.ScriptEngine.runScriptAsRawText(ScriptEngine.java:108)
	at com.kms.katalon.core.main.TestCaseExecutor.runScript(TestCaseExecutor.java:294)
	at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:285)
	at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:264)
	at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:256)
	at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:200)
	at com.kms.katalon.core.main.TestSuiteExecutor.accessTestCaseMainPhase(TestSuiteExecutor.java:129)
	at com.kms.katalon.core.main.TestSuiteExecutor.accessTestSuiteMainPhase(TestSuiteExecutor.java:112)
	at com.kms.katalon.core.main.TestSuiteExecutor.execute(TestSuiteExecutor.java:81)
	at com.kms.katalon.core.main.TestCaseMain.startTestSuite(TestCaseMain.java:142)
	at com.kms.katalon.core.main.TestCaseMain$startTestSuite$0.call(Unknown Source)
	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113)
	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:141)
	at TempTestSuite1540374174980.run(TempTestSuite1540374174980.groovy:36)
	at groovy.lang.GroovyShell.runScriptOrMainOrTestOrRunnable(GroovyShell.java:263)
	at groovy.lang.GroovyShell.run(GroovyShell.java:518)
	at groovy.lang.GroovyShell.run(GroovyShell.java:507)
	at groovy.ui.GroovyMain.processOnce(GroovyMain.java:653)
	at groovy.ui.GroovyMain.run(GroovyMain.java:384)
	at groovy.ui.GroovyMain.process(GroovyMain.java:370)
	at groovy.ui.GroovyMain.processArgs(GroovyMain.java:129)
	at groovy.ui.GroovyMain.main(GroovyMain.java:109)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:109)
	at org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:131)
)

Line 28 is: def response = WS.sendRequest(requestObject)

DELETE method:

def builder = new RestRequestObjectBuilder()
def requestObject = builder
	.withRestRequestMethod("DELETE")
	.withRestUrl("http://IP/api/healthcheck/123")
	.build()
'Send a request'
def response = WS.sendRequest(requestObject)

@Vinh Nguyen - any tips?

Thanks for your information. We’ve investigated it and observed it is an issue, so we will address it in the next version.

1 Like

Fixed in 5.8.4
Topic can be closed.