Forum Discussion

arvindlbhosale's avatar
arvindlbhosale
New Contributor
7 years ago

No signature of method com.eviware.soapui.impl.wsdl.support.connections.DefaultDatabaseConnectionCo

Hi,

 

 

I have upgraded SOAPUI to ReadyAPI 2.2.0 and I am getting below error. It was running fine in old versions.

 

 [exec] 08:47:28,409 ERROR [EventHandlersRequestFilter] groovy.lang.MissingMethodException: No signature of method: com.eviware.soapui.impl.wsdl.support.connections.DefaultDatabaseConnectionContainer.getDatabaseConnectionByName() is applicable for argument types: (java.lang.String) values: [GLR]
     [exec] 08:47:28,411 ERROR [SoapUI] An error occurred [No signature of method: com.eviware.soapui.impl.wsdl.support.connections.DefaultDatabaseConnectionContainer.getDatabaseConnectionByName() is applicable for argument types: (java.lang.String) values: [GLR]], see error log for details
     [exec] 08:47:28,411 ERROR [errorlog] groovy.lang.MissingMethodException: No signature of method: com.eviware.soapui.impl.wsdl.support.connections.DefaultDatabaseConnectionContainer.getDatabaseConnectionByName() is applicable for argument types: (java.lang.String) values: [GLR]
     [exec] groovy.lang.MissingMethodException: No signature of method: com.eviware.soapui.impl.wsdl.support.connections.DefaultDatabaseConnectionContainer.getDatabaseConnectionByName() is applicable for argument types: (java.lang.String) values: [GLR]
     [exec]  at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:58)
     [exec]  at org.codehaus.groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:49)
     [exec]  at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
     [exec]  at Script1.run(Script1.groovy:22)
     [exec]  at com.eviware.soapui.support.scripting.groovy.SoapUIGroovyScriptEngine.run(SoapUIGroovyScriptEngine.java:98)
     [exec]  at com.eviware.soapui.support.scripting.groovy.SoapUIProGroovyScriptEngineFactory$SoapUIProGroovyScriptEngine.run(SoapUIProGroovyScriptEngineFactory.java:82)
     [exec]  at com.eviware.soapui.eventhandlers.support.DefaultSoapUIScript.invoke(DefaultSoapUIScript.java:42)
     [exec]  at com.eviware.soapui.eventhandlers.support.DefaultSoapUIEventHandler.invoke(DefaultSoapUIEventHandler.java:27)
     [exec]  at com.eviware.soapui.eventhandlers.support.AbstractEventHandlerMetaData.invokeHandlers(AbstractEventHandlerMetaData.java:79)
     [exec]  at com.eviware.soapui.eventhandlers.support.AbstractEventHandlerMetaData.invokeHandlers(AbstractEventHandlerMetaData.java:60)
     [exec]  at com.eviware.soapui.eventhandlers.impl.EventHandlersTestRunListener.beforeRun(EventHandlersTestRunListener.java:53)
     [exec]  at com.eviware.soapui.impl.wsdl.support.AbstractTestCaseRunner.notifyBeforeRun(AbstractTestCaseRunner.java:357)
     [exec]  at com.eviware.soapui.impl.wsdl.support.AbstractTestCaseRunner.internalRun(AbstractTestCaseRunner.java:135)
     [exec]  at com.eviware.soapui.impl.wsdl.support.AbstractTestCaseRunner.internalRun(AbstractTestCaseRunner.java:1)
     [exec]  at com.eviware.soapui.impl.wsdl.support.AbstractTestRunner.run(AbstractTestRunner.java:129)
     [exec]  at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)

7 Replies

  • CCaulfield's avatar
    CCaulfield
    New Contributor

    It seems that getDatabaseConnectionByName has been refactored to getResourceByName. There's no mention of this in any release notes, in fact it doesn't seem that API changes make it into the release notes at all.

  • avidCoder's avatar
    avidCoder
    Super Contributor

    Just remove the import from here.  I think it is built internally. And also it is Ready API and you are trying to import soapui.

    • arvindlbhosale's avatar
      arvindlbhosale
      New Contributor

       

      I have below code in TestSuiteRunListener beforeRun Event.

       


      def environment = context.expand( '${#Project#environment}' )

      if (!environment.isEmpty() )
      {
      //testRunner.testCase.testSuite.project.setPropertyValue("environment",environment)
      testRunner.testCase.testSuite.project.setActiveEnvironment(environment)
      }

      project = testRunner.testCase.testSuite.project

      for(testStep in context.testCase.getTestStepList())
      {
      // Set the connectionString for all ProJdbcRequestTestStep
      if(testStep instanceof com.eviware.soapui.impl.wsdl.teststeps.ProJdbcRequestTestStep)
      {
      databaseName = testStep.getDbConnectionName()
      connectionString = context.testCase.testSuite.project.activeEnvironment.databaseConnectionContainer.getDatabaseConnectionByName(databaseName).getConnectionString()
      password= context.testCase.testSuite.project.activeEnvironment.databaseConnectionContainer.getDatabaseConnectionByName(databaseName).getPassword()
      if (!connectionString.isEmpty() )
      {
      testStep.setConnectionString(connectionString)
      testStep.setPassword(password)
      }
      }
      }

  • Grrison's avatar
    Grrison
    Occasional Contributor

    DatabaseConnectionContainer has been deprecated in 2.2, I found related error as well.

     

    try DefaultDatabaseConnectionContainer, in the same package. and lots of methods changed, you might need to update existing groovy.

     

    Hope this help.

  • saikrrishna's avatar
    saikrrishna
    New Contributor

    I am also currently facing similar issue. Do we have any solution? 

     

    We have lot of groovy with below code. After upgrading from 2.0.0 to 2.2 or 2.3 my scripts starting failing. 

     

    com.eviware.soapui.support.GroovyUtils.registerJdbcDriver("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    def rbConObj = context.testCase.testSuite.project.DefaultDatabaseConnectionContainer.getDatabaseConnectionByName('XXXXX'); --> get values from Databases.
    def rbconstring = rbConObj.getConnectionString();

    def sql = Sql.newInstance(rbconstring);

    sql.executeUpdate("UPDATE XXXXXXXX")