Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 运行方法的junit测试时,org.hsqldb.jdbcDriver ClassNotFoundException_Java_Hsqldb - Fatal编程技术网

Java 运行方法的junit测试时,org.hsqldb.jdbcDriver ClassNotFoundException

Java 运行方法的junit测试时,org.hsqldb.jdbcDriver ClassNotFoundException,java,hsqldb,Java,Hsqldb,我使用的是一种返回数据源的方法。方法如下: public static DataSource getDataSource(){ String url; //url="jdbc:hsqldb:file:"+filePath; url = "jdbc:hsqldb:file:D:/EclipseWorskpace/ew-pg/lmexadapter/hsqldb-example/src/main/webapp/WEB-INF/data/db/hsqld

我使用的是一种返回数据源的方法。方法如下:

public static DataSource getDataSource(){
        String url;
        //url="jdbc:hsqldb:file:"+filePath;
        url = "jdbc:hsqldb:file:D:/EclipseWorskpace/ew-pg/lmexadapter/hsqldb-example/src/main/webapp/WEB-INF/data/db/hsqldb.jar";
        BasicDataSource basicDataSource = new BasicDataSource();
        basicDataSource.setUsername("SA");
        basicDataSource.setPassword("password");
        basicDataSource.setDriverClassName("org.hsqldb.jdbc.JDBCDriver");
        basicDataSource.setUrl(url);
        System.out.println("$$$$$$$$ URL is : " + url);
        return basicDataSource;
    }
我从dao调用这些方法。所有这些我都在使用ibatis进行OR映射。当我通过junit测试运行测试用例时,它给了我一个异常:

" org.apache.commons.dbcp.SQLNestedException: Cannot load JDBC driver class 'org.hsqldb.jdbcDriver'
    at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1259)
    at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1192)
    at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:884)
    at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:113)
    at org.springframework.jdbc.datasource.TransactionAwareDataSourceProxy$TransactionAwareInvocationHandler.invoke(TransactionAwareDataSourceProxy.java:213)
    ... 35 more
Caused by: java.lang.ClassNotFoundException: org.hsqldb.jdbcDriver
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:169)
    at org.apache.commons.dbcp.BasicDataSource.createConnectionFactory(BasicDataSource.java:1253)
    ... 39 more
"

通过从下载并在类路径中添加HSQLDB jar,如果您已经下载并正确安装了HSQLDB jar文件,那么我将检查类路径。

前面的答案是对的,也是错的


HSQLDB jar需要添加到类路径中。问题是在之前的回答中,提问者被指的是项目的旧版本,而这些旧版本没有他们想要的课程。未找到的类仅在HSQLDB的版本2中,如果您使用的是maven,请尝试添加

<dependency>
    <groupId>org.hsqldb</groupId>
    <artifactId>hsqldb</artifactId>
    <version>2.4.0</version>
    <scope>runtime</scope>
</dependency>

org.hsqldb
hsqldb
2.4.0
运行时
要访问pom.xml,只需使用抓取:

@Grab('org.hsqldb:hsqldb:2.3.3')
@GrabConfig(systemClassLoader=true)

更多信息:

除此之外,我无法在我的类路径中添加jar,如果您有其他解决方案的建议,为什么??,没有其他解决方案exist@Chitresh:因为这是唯一正确的解决方案,所以你运气不好。嗨,我不能在我的类路径中添加jar,如果你有其他建议,除了这个,请告诉我我已经尝试在我的tomcat服务器库中添加jar,但是它没有从那里得到。我也尝试在我的tomcat服务器库中添加jar,&&嗨,我不能在我的类路径中添加jar,将返回false。它应该会起作用。尝试将jar放入
common\lib
@Jigar:我宁愿看到他们发布太多的stacktrace,也不愿看到太少的stacktrace。如果我不得不不将其添加到类路径中,那么我该怎么做呢。我有一个在tomcat库中添加jar的解决方案,但它也给了我一个相同的例外。你知道如何重新喜欢这个吗?很可能你应该添加到你的构建路径中。我假设您正在使用Eclipse,然后右键单击项目,单击属性,然后将其添加到构建路径中。你把jar文件放在哪里了?怎么做?您可以将文件拖放到项目的lib目录中。谢谢,您昨天输入了答案,真是幸运!