Failure in running a soap test case: The character sequence "]]>" must not appear in content unless used to mark the end of a CDATA section

I get the following WARN and ERROR
Note that I am able to run the SOAP request using the Object Repository

2018-12-11 11:48:38.101 e[39mDEBUGe[0;39m e[36mtestcase.WTestCase -e[0;39m e[39m1: response = sendRequest(findTestObject(“SOAP/setCosCustOrderEw”))e[0;39m
2018-12-11 11:48:38.128 e[31mWARN e[0;39m e[36mc.k.k.core.testobject.ObjectRepository -e[0;39m e[39mCannot find test object with id ‘Object Repository/SOAP/setCosCustOrderEw’ because of 'org.dom4j.DocumentException: Error on line 166 of document file:///C:/Users/user/Katalon%20Studio/Test/Object%20Repository/SOAP/setCosCustOrderEw.rs : The character sequence “]]>” must not appear in content unless used to mark the end of a CDATA section. Nested exception: The character sequence “]]>” must not appear in content unless used to mark the end of a CDATA section.'e[0;39m

2018-12-11 11:48:38.171 e[1;31mERRORe[0;39m e[36mc.k.k.core.keyword.internal.KeywordMain -e[0;39m e[31m❌ Unable to send request (Root cause: java.lang.IllegalArgumentException: Request object is null)e[0;39m

2018-12-11 11:48:38.180 e[1;31mERRORe[0;39m e[36mc.k.katalon.core.main.TestCaseExecutor -e[0;39m e[31m❌ response = sendRequest(findTestObject(“SOAP/setCosCustOrderEw”)) FAILED.e[0;39m
e[31mReason:e[0;39m
e[31mcom.kms.katalon.core.exception.StepFailedException: Unable to send request (Root cause: java.lang.IllegalArgumentException: Request object is null)e[0;39m
e[31m at com.kms.katalon.core.keyword.internal.KeywordMain.stepFailed(KeywordMain.groovy:36)e[0;39m
e[31m at com.kms.katalon.core.keyword.internal.KeywordMain.stepFailed(KeywordMain.groovy)e[0;39m
e[31m at com.kms.katalon.core.keyword.internal.KeywordMain.runKeyword(KeywordMain.groovy:56)e[0;39m
e[31m at com.kms.katalon.core.webservice.keyword.builtin.SendRequestKeyword.sendRequest(SendRequestKeyword.groovy:48)e[0;39m
e[31m at com.kms.katalon.core.webservice.keyword.builtin.SendRequestKeyword.execute(SendRequestKeyword.groovy:43)e[0;39m
e[31m at com.kms.katalon.core.keyword.internal.KeywordExecutor.executeKeywordForPlatform(KeywordExecutor.groovy:53)e[0;39m
e[31m at com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords.sendRequest(WSBuiltInKeywords.groovy:40)e[0;39m
e[31m at com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords$sendRequest.call(Unknown Source)e[0;39m
e[31m at WTestCase.run(WTestCase:16)e[0;39m
e[31m at com.kms.katalon.core.main.ScriptEngine.run(ScriptEngine.java:194)e[0;39m
e[31m at com.kms.katalon.core.main.ScriptEngine.runScriptAsRawText(ScriptEngine.java:119)e[0;39m
e[31m at com.kms.katalon.core.main.TestCaseExecutor.runScript(TestCaseExecutor.java:321)e[0;39m
e[31m at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:312)e[0;39m
e[31m at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:291)e[0;39m
e[31m at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:283)e[0;39m
e[31m at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:222)e[0;39m
e[31m at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:106)e[0;39m
e[31m at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:97)e[0;39m
e[31m at com.kms.katalon.core.main.TestCaseMain$runTestCase$0.call(Unknown Source)e[0;39m
e[31m at TempTestCase1544500115861.run(TempTestCase1544500115861.groovy:22)e[0;39m
2018-12-11 11:48:38.184 e[1;31mERRORe[0;39m e[36mc.k.katalon.core.main.TestCaseExecutor -e[0;39m e[31m❌ Test Cases/WTestCase FAILED.e[0;39m
e[31mReason:e[0;39m
e[31mcom.kms.katalon.core.exception.StepFailedException: Unable to send request (Root cause: java.lang.IllegalArgumentException: Request object is null)e[0;39m
e[31m at com.kms.katalon.core.keyword.internal.KeywordMain.stepFailed(KeywordMain.groovy:36)e[0;39m
e[31m at com.kms.katalon.core.keyword.internal.KeywordMain.stepFailed(KeywordMain.groovy)e[0;39m
e[31m at com.kms.katalon.core.keyword.internal.KeywordMain.runKeyword(KeywordMain.groovy:56)e[0;39m
e[31m at com.kms.katalon.core.webservice.keyword.builtin.SendRequestKeyword.sendRequest(SendRequestKeyword.groovy:48)e[0;39m
e[31m at com.kms.katalon.core.webservice.keyword.builtin.SendRequestKeyword.execute(SendRequestKeyword.groovy:43)e[0;39m
e[31m at com.kms.katalon.core.keyword.internal.KeywordExecutor.executeKeywordForPlatform(KeywordExecutor.groovy:53)e[0;39m
e[31m at com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords.sendRequest(WSBuiltInKeywords.groovy:40)e[0;39m
e[31m at com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords$sendRequest.call(Unknown Source)e[0;39m
e[31m at WTestCase.run(WTestCase:16)e[0;39m
e[31m at com.kms.katalon.core.main.ScriptEngine.run(ScriptEngine.java:194)e[0;39m
e[31m at com.kms.katalon.core.main.ScriptEngine.runScriptAsRawText(ScriptEngine.java:119)e[0;39m
e[31m at com.kms.katalon.core.main.TestCaseExecutor.runScript(TestCaseExecutor.java:321)e[0;39m
e[31m at com.kms.katalon.core.main.TestCaseExecutor.doExecute(TestCaseExecutor.java:312)e[0;39m
e[31m at com.kms.katalon.core.main.TestCaseExecutor.processExecutionPhase(TestCaseExecutor.java:291)e[0;39m
e[31m at com.kms.katalon.core.main.TestCaseExecutor.accessMainPhase(TestCaseExecutor.java:283)e[0;39m
e[31m at com.kms.katalon.core.main.TestCaseExecutor.execute(TestCaseExecutor.java:222)e[0;39m
e[31m at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:106)e[0;39m
e[31m at com.kms.katalon.core.main.TestCaseMain.runTestCase(TestCaseMain.java:97)e[0;39m
e[31m at com.kms.katalon.core.main.TestCaseMain$runTestCase$0.call(Unknown Source)e[0;39m
e[31m at TempTestCase1544500115861.run(TempTestCase1544500115861.groovy:22)e[0;39m
2018-12-11 11:48:38.187 e[34mINFO e[0;39m e[36mc.k.katalon.core.main.TestCaseExecutor -e[0;39m e[39mEND Test Cases/WTestCase

Seems to be duplicating wit this:

Can you check the file to see how it look like.

ending looks like this:

<xsd:pOrdPaymentAccounts>
<xsd:pOrdPaymentAccount>
<xsd:Provider>BPOINT</xsd:Provider>
<xsd:ResultKey>27cf6f69-1f29-4230-9be7-323c3a96969f</xsd:ResultKey>
<xsd:Amount>282.87</xsd:Amount>
</xsd:pOrdPaymentAccount>
</xsd:pOrdPaymentAccounts>
</xsd:CosOrderServices_setCosOrderEw>]]>
</pOrder>
<xRetCode_out/>
<xRetMsg_out/>
</cos:setCosCustOrderEw>
</soapenv:Body>
</soapenv:Envelope>

SOAP
setCosCustOrderEw
import static org.assertj.core.api.Assertions.*

import com.kms.katalon.core.testobject.RequestObject
import com.kms.katalon.core.testobject.ResponseObject
import com.kms.katalon.core.webservice.keyword.WSBuiltInKeywords as WS
import com.kms.katalon.core.webservice.verification.WSResponseManager

import groovy.json.JsonSlurper
import internal.GlobalVariable as GlobalVariable

RequestObject request = WSResponseManager.getInstance().getCurrentRequest()

ResponseObject response = WSResponseManager.getInstance().getCurrentResponse()

Do you find the following fragment

<pOrder><![CDATA[<xsd:CosOrderServices_setCosOrderEW>
...

just before the fragmen you presented above?

Yes it has that fragment

There seems to be a bug somewhere.

In order to look into more deeply, I need a project in which I can reproduce the problem ("]]>" must not appear…) in my hand, but I do not have one.

BugFinder,

Is your target URL public and accessible for me? If so, is it possible for me to have a look at the Test Object you have, and your full text of Test Case?

hello @kazurayam. unfortunately the target URL is not public.

Test looks like this:

response = WS.sendRequest(findTestObject(‘SOAP/setCosCustOrderEw’))
WS.verifyResponseStatusCode(response, 200)

assertThat(response.getStatusCode()).isEqualTo(200)

Can you attach the file without trimming? — though you can remove sensitive info, of course.

Is there any resolution for this?

I’m interested in exploring how much Katalon can do for us, but all our SOAP messaging has CDATA sections.

Cheers
Phil

1 Like

I also encounter this problem with Katalon Studio 7.2.1 : CDATA in SOAP request cause an error and makes the object to disappear from the Object Repository.
I would like to keep CDATA in my request to make them human-readable.
Thanks.