cancel
Showing results for 
Search instead for 
Did you mean: 

ERROR:groovy.lang.MissingMethodException: No signature of method

Highlighted
Contributor

ERROR:groovy.lang.MissingMethodException: No signature of method

I have groovy util class as below:

 

 

package com.hypers.test.apitest.util

import groovy.sql.Sql

class DataBaseUtil {

    static def database

    static def connectDB(def url, def username, def password, def driver){
        database = Sql.newInstance(url,username,password,driver)
    }

    static def queryData(def sqlcommand){
        database.rows(sqlcommand)
    }

    static def queryData(def sqlcommand, def offset, def pageSize){
        database.rows(sqlcommand, offset, pageSize)
    }

    static def getFirstRow(def sqlcommand){
        database.firstRow(sqlcommand)
    }

    static def updateData(def sqlcommand){
        database.executeUpdate(sqlcommand)
    }

    static def insertData(def sqlcommand){
        database.executeInsert(sqlcommand)
    }

    static def deleteData(def sqlcommand){
        database.execute(sqlcommand)
    }

    static def closeDB(){
        database.close()
    }
}

 

 

I copied it to SoapUI for a reference, like:

 

 

package com.hypers.test.apitest.util

def JDBC_URL = context.expand( '${#Project#JDBC_URL}' )
def DB_UserName = context.expand( '${#Project#DB_UserName}' )
def DB_Password = context.expand( '${#Project#DB_Password}' )
def DB_Driver = context.expand( '${#Project#DB_Driver}' )

def sqlcommand = "SELECT id From configs_account Where name = 'APITEST_NewAccount_ValidData_ACTIVE'"

DataBaseUtil.connectDB(JDBC_URL, DB_UserName, DB_Password, DB_Driver)
DataBaseUtil.queryData(sqlcommand)
DataBaseUtil.getFirstRow(sqlcommand)

 

 

It works well with queryData method, but it's throws exception with getFirstRow method, I really can't figure out what's going on and get blocked for a very long time, please help to have a look, thanks.

 

Exception as below:

Tue Jul 23 15:48:47 CST 2019:ERROR:groovy.lang.MissingMethodException: No signature of method: static com.hypers.test.apitest.util.DataBaseUtil.getFirstRow() is applicable for argument types: (java.lang.String) values: [SELECT id From configs_account Where name = 'APITEST_NewAccount_ValidData_ACTIVE']
   groovy.lang.MissingMethodException: No signature of method: static com.hypers.test.apitest.util.DataBaseUtil.getFirstRow() is applicable for argument types: (java.lang.String) values: [SELECT id From configs_account Where name = 'APITEST_NewAccount_ValidData_ACTIVE']
   	at groovy.lang.MetaClassImpl.invokeStaticMissingMethod(MetaClassImpl.java:1373)
   	at groovy.lang.MetaClassImpl.invokeStaticMethod(MetaClassImpl.java:1359)
   	at org.codehaus.groovy.runtime.callsite.StaticMetaClassSite.call(StaticMetaClassSite.java:50)
   	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
   	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
   	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
   	at com.hypers.test.apitest.util.DBUtil.getFirstRow(Script10.groovy:38)
   	at com.hypers.test.apitest.util.DBUtil$getFirstRow.call(Unknown Source)
   	at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
   	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
   	at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
   	at Script18.run(Script18.groovy:10)
   	at com.eviware.soapui.support.scripting.groovy.SoapUIGroovyScriptEngine.run(SoapUIGroovyScriptEngine.java:92)
   	at com.eviware.soapui.support.scripting.groovy.SoapUIProGroovyScriptEngineFactory$SoapUIProGroovyScriptEngine.run(SourceFile:79)
   	at com.eviware.soapui.impl.wsdl.teststeps.WsdlGroovyScriptTestStep.run(WsdlGroovyScriptTestStep.java:138)
   	at com.eviware.soapui.impl.wsdl.panels.teststeps.GroovyScriptStepDesktopPanel$RunAction$1.run(GroovyScriptStepDesktopPanel.java:250)
   	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
   	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
   	at java.lang.Thread.run(Unknown Source)
9 REPLIES 9
Community Hero

Re: ERROR:groovy.lang.MissingMethodException: No signature of method

Please try with below change (replace the respective statement in your script)

def sqlcommand = 'SELECT id From configs_account Where name = \'APITEST_NewAccount_ValidData_ACTIVE\''


Regards,
Rao.
Moderator

Re: ERROR:groovy.lang.MissingMethodException: No signature of method

@nmrao , thank you for the suggestion.

 

@白夜有点黑, have you had a chance to thy this? Does this work for you? 


Olga Terentieva
SmartBear Assistant Community Manager

Occasional Visitor

Re: ERROR:groovy.lang.MissingMethodException: No signature of method

Replace "static method" of  JDBC Connection class with “construction method” ,it worked!

Moderator

Re: ERROR:groovy.lang.MissingMethodException: No signature of method

It's great to hear this, @MelissaSmiley Happy


Olga Terentieva
SmartBear Assistant Community Manager

Contributor

Re: ERROR:groovy.lang.MissingMethodException: No signature of method

Thanks @nmrao, it's not worked for me

Contributor

Re: ERROR:groovy.lang.MissingMethodException: No signature of method

Yes, try to new a instance instead of "static" class should be a temp solution, but why some "static" method works well but the others throws exception here, I'm still confused, still waitting for root cause...

Moderator

Re: ERROR:groovy.lang.MissingMethodException: No signature of method

@白夜有点黑,

 

Did you change the definition of sqlcommand as @nmrao suggested?

def sqlcommand = 'SELECT id From configs_account Where name = \'APITEST_NewAccount_ValidData_ACTIVE\''

Do you get the same error now? Can you please provide us with the new stack trace?


Anastasia
Customer Care Team


Did my reply answer your question? Give Kudos or Accept it as a Solution to help others.↓↓↓↓↓

Community Hero

Re: ERROR:groovy.lang.MissingMethodException: No signature of method

Ok.
Have you used single quote or double quote at the end of the statement?
Can you please post stacktrace of the error?


Regards,
Rao.
Moderator

Re: ERROR:groovy.lang.MissingMethodException: No signature of method

Thanks everyone for participation!

 

@白夜有点黑, what stage are you on now? Have you managed to find a solution?


Olga Terentieva
SmartBear Assistant Community Manager

New Here?
Join us and watch the welcome video:
Watch the New Interview
APITestingMistake#2
Top Kudoed Authors