Forum Discussion

laranja's avatar
laranja
New Contributor
13 years ago

SoapUI + sqlite-jdbc = class not found

I'd like to use SQLite database in SoapUI Groovy script.

I have copied the library sqlitejdbc-v056.jar into SoapUI's /bin/ext directory (theoretically SoapUI classpath) and I use it like this:

import groovy.sql.Sql
def sql = Sql.newInstance( "jdbc:sqlite:/path_to_database", "org.sqlite.JDBC" )


When I run the MockService i get the following exception:

java.sql.SQLException: No suitable driver found for jdbc:sqlite:/path_to_database


When I use Class.forName("org.sqlite.JDBC") i get another exception:

java.lang.ClassNotFOundException: org.sqlite.JDBC


Both methods work fine in groovyConsole.

How can I make them work in SoapUI?

2 Replies

  • laranja's avatar
    laranja
    New Contributor
    Ok, I found the answer.
    Apart from copying the library .jar file to soapui/bin/ext you need to add:

    com.eviware.soapui.support.GroovyUtils.registerJdbcDriver("org.sqlite.JDBC")


    in your code before using groovy.sql.Sql.

    Excuse me for posting 3 posts one after another, I have already asked forum admin to delete them.
    However I think that it would be a good idea to mention registerJdbcDriver in ServiceMocking guide.
  • laranja's avatar
    laranja
    New Contributor
    I'm out of ideas. Have anyone ever succeeded in using SQLite in soapUI?

    On startup I get a proper log about library being added to extensions classpath:

    INFO:Adding [/home/piotr/soapui-4.0.1/bin/ext/sqlitejdbc-v056.jar] to extensions classpath


    I have added an import to my MockService Start script, now it looks like this:


    import groovy.sql.Sql
    import org.sqlite.JDBC

    def sql = Sql.newInstance("jdbc:sqlite:/home/piotr/workspace/SINUM-soapUI/test.db/", "org.sqlite.JDBC")


    When I start the MockService i get the following error:

    java.sql.SQLException: No suitable driver found for jdbc:sqlite:/home/piotr/workspace/SINUM-soapUI/test.db


    Error log says this:

    Sun Jan 08 12:11:23 CET 2012:ERROR:java.sql.SQLException: No suitable driver found for jdbc:sqlite:/home/piotr/workspace/SINUM-soapUI/test.db
    java.sql.SQLException: No suitable driver found for jdbc:sqlite:/home/piotr/workspace/SINUM-soapUI/test.db
    at java.sql.DriverManager.getConnection(DriverManager.java:640)
    at java.sql.DriverManager.getConnection(DriverManager.java:222)
    at groovy.sql.Sql.newInstance(Sql.java:231)
    at groovy.sql.Sql.newInstance(Sql.java:322)
    at groovy.sql.Sql$newInstance.call(Unknown Source)
    at Script2.run(Script2.groovy:4)
    at com.eviware.soapui.support.scripting.groovy.SoapUIGroovyScriptEngine.run(SoapUIGroovyScriptEngine.java:96)
    at com.eviware.soapui.impl.wsdl.mock.WsdlMockService.runStartScript(WsdlMockService.java:557)
    at com.eviware.soapui.impl.wsdl.mock.WsdlMockRunner.start(WsdlMockRunner.java:670)
    at com.eviware.soapui.impl.wsdl.mock.WsdlMockRunner.<init>(WsdlMockRunner.java:100)
    at com.eviware.soapui.impl.wsdl.mock.WsdlMockService.start(WsdlMockService.java:208)
    at com.eviware.soapui.impl.wsdl.mock.WsdlMockService.start(WsdlMockService.java:495)
    at com.eviware.soapui.impl.wsdl.panels.mock.WsdlMockServiceDesktopPanel.startMockService(WsdlMockServiceDesktopPanel.java:415)
    at com.eviware.soapui.impl.wsdl.panels.mock.WsdlMockServiceDesktopPanel$RunMockServiceAction.actionPerformed(WsdlMockServiceDesktopPanel.java:577)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2012)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2335)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:404)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:253)
    at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:289)
    at java.awt.Component.processMouseEvent(Component.java:6203)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
    at java.awt.Component.processEvent(Component.java:5968)
    at java.awt.Container.processEvent(Container.java:2105)
    at java.awt.Component.dispatchEventImpl(Component.java:4564)
    at java.awt.Container.dispatchEventImpl(Container.java:2163)
    at java.awt.Component.dispatchEvent(Component.java:4390)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4461)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4125)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4055)
    at java.awt.Container.dispatchEventImpl(Container.java:2149)
    at java.awt.Window.dispatchEventImpl(Window.java:2478)
    at java.awt.Component.dispatchEvent(Component.java:4390)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:649)
    at java.awt.EventQueue.access$000(EventQueue.java:96)
    at java.awt.EventQueue$1.run(EventQueue.java:608)
    at java.awt.EventQueue$1.run(EventQueue.java:606)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:116)
    at java.awt.EventQueue$2.run(EventQueue.java:622)
    at java.awt.EventQueue$2.run(EventQueue.java:620)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:105)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:619)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:200)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:190)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:185)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:177)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:138)


    Do I need to add any additional settings files to tell soapUI that my project uses an additional library from bin/ext/?