SoapUI:5.6.0java.lang.ClassNotFoundException:PostgreSQL/org.PostgreSQL.Driver在使用maven运行测试时

SoapUI:5.6.0java.lang.ClassNotFoundException:PostgreSQL/org.PostgreSQL.Driver在使用maven运行测试时,postgresql,maven,soapui,Postgresql,Maven,Soapui,我正在尝试使用mvn命令运行SoapUI测试,我在每个JDBC请求中都会看到这个异常,尽管测试通过并且数据库被访问。” maven中添加了对PostgreSQL的依赖关系 日志: 5:20:54484信息[SoapUITestCaseRunner]运行步骤[检查数据库以确保其已删除] java.lang.ClassNotFoundException:PostgreSQL/org.PostgreSQL.Driver 位于java.base/java.lang.Class.forName0(本机方法

我正在尝试使用mvn命令运行SoapUI测试,我在每个JDBC请求中都会看到这个异常,尽管测试通过并且数据库被访问。”

maven中添加了对PostgreSQL的依赖关系

日志:

5:20:54484信息[SoapUITestCaseRunner]运行步骤[检查数据库以确保其已删除]
java.lang.ClassNotFoundException:PostgreSQL/org.PostgreSQL.Driver
位于java.base/java.lang.Class.forName0(本机方法)
位于java.base/java.lang.Class.forName(Class.java:398)
位于com.eviware.soapui.support.GroovyUtils.registerJdbcDriver(GroovyUtils.java:103)
位于com.eviware.soapui.support.jdbc.JdbcUtils.initConnection(JdbcUtils.java:50)
在com.eviware.soapui.impl.wsdl.panels.teststeps.JdbcSubmit.getDatabaseConnection(JdbcSubmit.java:190)上
在com.eviware.soapui.impl.wsdl.panels.teststeps.jdbcsmit.prepare(jdbcsmit.java:222)上
位于com.eviware.soapui.impl.wsdl.panels.teststeps.jdbcsmit.runQuery(jdbcsmit.java:173)
在com.eviware.soapui.impl.wsdl.panels.teststeps.jdbcsmit.run(jdbcsmit.java:147)上
位于com.eviware.soapui.impl.wsdl.panels.teststeps.jdbccommit.(jdbccommit.java:79)
位于com.eviware.soapui.impl.wsdl.panels.teststeps.jdbcrest.submit(jdbcrest.java:122)
在com.eviware.soapui.impl.wsdl.teststeps.JdbcRequestTestStep.run(JdbcRequestTestStep.java:194)上
位于com.eviware.soapui.impl.wsdl.support.AbstractTestCaseRunner.runTestStep(AbstractTestCaseRunner.java:211)
位于com.eviware.soapui.impl.wsdl.testcase.WsdlTestCaseRunner.runCurrentTestStep(WsdlTestCaseRunner.java:47)
位于com.eviware.soapui.impl.wsdl.support.AbstractTestCaseRunner.internalRun(AbstractTestCaseRunner.java:138)
位于com.eviware.soapui.impl.wsdl.support.AbstractTestCaseRunner.internalRun(AbstractTestCaseRunner.java:46)
位于com.eviware.soapui.impl.wsdl.support.AbstractTestRunner.run(AbstractTestRunner.java:128)
位于com.eviware.soapui.impl.wsdl.support.AbstractTestRunner.start(AbstractTestRunner.java:76)
位于com.eviware.soapui.impl.wsdl.testcase.WsdlTestCase.run(WsdlTestCase.java:594)
位于com.eviware.soapui.impl.wsdl.testcase.WsdlTestCase.run(WsdlTestCase.java:78)
位于com.eviware.soapui.model.testsuite.TestCase$run.call(未知源)
位于org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
位于org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
位于org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:136)
在Script1.run(Script1.groovy:7)
在com.eviware.soapui.support.scripting.groovy.SoapUIGroovyScriptEngine.run(SoapUIGroovyScriptEngine.java:90)
位于com.eviware.soapui.impl.wsdl.WsdlTestSuite.runTearDownScript(WsdlTestSuite.java:495)
位于com.eviware.soapui.impl.wsdl.testcase.WsdlTestSuiteRunner.internalFinally(WsdlTestSuiteRunner.java:163)
位于com.eviware.soapui.impl.wsdl.testcase.WsdlTestSuiteRunner.internalFinally(WsdlTestSuiteRunner.java:46)
位于com.eviware.soapui.impl.wsdl.support.AbstractTestRunner.run(AbstractTestRunner.java:149)
位于java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
位于java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
位于java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
位于java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
位于java.base/java.lang.Thread.run(Thread.java:829)
15:20:54589信息[SoapUITestCaseRunner]断言[JDBC状态]的状态有效
15:20:54589信息[SoapUITestCaseRunner]断言[JDBC超时]的状态有效
15:20:54592信息[SoapUITestCaseRunner]断言[XPath匹配]的状态有效
15:20:54595信息[log]拆卸脚本已完成。
pom.xml:

<properties>
        <soapui-maven-plugin.version>5.6.0</soapui-maven-plugin.version>
        <postgreSql.version>42.2.20</postgreSql.version>
    </properties>

    <pluginRepositories>
        <pluginRepository>
            <id>SmartBearPluginRepository</id>
            <url>https://rapi.tools.ops.smartbear.io/nexus/content/groups/public/</url>
        </pluginRepository>
    </pluginRepositories>

    <build>
        <plugins>
            <!-- Plugin to read external properties file -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>properties-maven-plugin</artifactId>
                <version>1.0.0</version><!-- afaik it's final, no need for parameter -->
                <executions>
                    <execution>
                        <phase>initialize</phase>
                        <goals>
                            <goal>read-project-properties</goal>
                        </goals>
                        <configuration>
                            <files>
                                <file>project.properties</file>
                            </files>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <!-- SoapUI plugin -->
            <plugin>
                <groupId>com.smartbear.soapui</groupId>
                <artifactId>soapui-maven-plugin</artifactId>
                <version>${soapui-maven-plugin.version}</version>
                
                <configuration>
                    <printReport>true</printReport>
                    <junitReport>true</junitReport>
                    <outputFolder>${baseDir}/target/surefire-reports</outputFolder>
                </configuration>

                <dependencies>
                    <dependency>
                        <groupId>org.postgresql</groupId>
                        <artifactId>postgresql</artifactId>
                        <version>${postgreSql.version}</version>
                    </dependency>
                </dependencies>

5.6.0
42.2.20
SmartBearPluginRepository
https://rapi.tools.ops.smartbear.io/nexus/content/groups/public/
org.codehaus.mojo
属性maven插件
1.0.0
初始化
读取项目属性
project.properties
com.smartbear.soapui
soapui maven插件
${soapui maven plugin.version}
真的
真的
${baseDir}/target/surefire报告
org.postgresql
postgresql
${postgreSql.version}
注意:将groupid和执行留空


知道什么会导致异常,或者如何抑制异常吗?对我来说奇怪的是,JDBC请求运行时没有问题。

I Java可以从类路径自动加载JDBC驱动程序,这就是为什么它仍然有效

我认为Groovy拆卸脚本中有一行代码如下所示:

def driver = 'PostgreSQL/org.postgresql.Driver'
如果你把它换成

def driver = 'org.postgresql.Driver'
它应该很好用


更新:提问者通过在脚本中添加以下行来解决问题:

com.eviware.soapui.support.GroovyUtils.registerJdbcDriver(driver)

这是一种黑客行为,但它使异常消失。

如中所述,bin/ext中的JDBC连接器似乎丢失了。如果连接成功,则不使用JDBC Smartbear
com.eviware.soapui.support.GroovyUtils.registerJdbcDriver(driver)