xworker
8 years agoOccasional Contributor
Fails to import WSDL file when running in groovy. Works in SoapUI Ui
Hi
I have a WSDL file which I am trying to import and parse from groovy. I works thru the SoapUI GUI but not thru the groovy script. The error I get is:
[SoapMessageBuilder] Could not find element [{http://schemas.xxx.com/service/CardServiceRequest/1.0}BlockCardsRequest] specified in part [blockCardsRequestPart] 11:26:18,694 ERROR [WsdlTestRequestStep] Could not find operation [blockCards] in interface [__soap_CardServiceESB_CardServicePT] for test request [null] in TestCase [__soap_CardServiceESB_CardServicePT TestSuite/blockCards] 11:26:18,700 ERROR [SoapUI] An error occurred [Cannot invoke method setName() on null object], see error log for details java.lang.NullPointerException: Cannot invoke method setName() on null object
The groovy code:
def groovyUtils = new com.eviware.soapui.support.GroovyUtils(context) def projectPath = groovyUtils.projectPath //gets the path of the project root def wsdlUrl = testRunner.testCase.testSuite.project.getPropertyValue( "WSDL_url" ) //wsdlUrl ="/CreditApplicationServicePS.wsdl" log.info(wsdlUrl) def project = context.testCase.testSuite.project WsdlProject wsdlProject = new WsdlProject(project.getPath()); WsdlInterface wsdl = WsdlInterfaceFactory .importWsdl(wsdlProject, wsdlUrl, true)[0]; //create and add a test suite to the project def suiteName =wsdl.getName()+" TestSuite" WsdlTestSuite testSuite = project.addNewTestSuite(suiteName); testSuite.setName(suiteName); def i for (i = 0; i < wsdl.getOperationCount(); i++) { //get the operation and its name WsdlOperation operation = wsdl.getOperationAt(i); def opName = operation.getName(); //add a testcase and teststeps def testStepConfig = WsdlTestRequestStepFactory.createConfig(operation, opName); def testCase = testSuite.addNewTestCase(opName); def testStep = testCase.addTestStep(testStepConfig); testStep.setName(opName); def inputHolder = opName + "#Request" def holderRawReq = groovyUtils.getXmlHolder(inputHolder) }
Is there any options to set to make the wsdl importer be less strict?