【问题标题】:Spring jdbc:embedded-database not able to access jdbc driver on JBoss AS 7Spring jdbc:嵌入式数据库无法访问 JBoss AS 7 上的 jdbc 驱动程序
【发布时间】:2012-04-01 05:48:42
【问题描述】:

我正在使用 Spring 的 <jdbc:embedded> 使用 HSQLDB 运行集成和验收测试。如果我在应用程序的类路径中包含hsqldb.jar,那么一切正常,但是将驱动程序作为模块移动到 JBoss 我得到以下异常:

PropertyAccessException 1: org.springframework.beans.MethodInvocationException: 
Property 'databaseType' threw exception; 
nested exception is java.lang.IllegalStateException: 
Driver for test database type [HSQL] is not available in the classpath

JBoss 可以看到驱动程序,因为我可以使用它在 JBoss 上配置数据源,但无法弄清楚为什么它不在我的应用程序类路径中。 jdbc 驱动程序是否只能通过 Jboss 上的配置数据源获得,还是我需要做其他事情才能使其可用?

【问题讨论】:

    标签: spring hsqldb jboss7.x


    【解决方案1】:

    我在使用 Spring 但使用 H2 数据库时遇到了同样的问题。有两种可能,您可以将相应的 .jar 放入服务器的 lib 文件夹中的数据库中。或者你可以把它放在你的 webApp 中。我选择了最新的可能性,所以我把这个依赖放在我的 pom.xml 中:

    <dependency>
       <groupId>com.h2database</groupId>
       <artifactId>h2</artifactId>
       <version>XXXXXX</version>
    

    【讨论】:

    • h2库与HSQL无关
    • 我相信@gibers 暗示只使用 H2 而不是 hSQL...这对我也有用。
    【解决方案2】:

    也许已经不是相对的回答了,但无论如何。
    您应该将hsqldb.jar 添加到类路径
    如果使用 maven 检查 maven repo 的最新版本,并添加到 pom。
    或者在 official website 上查找最新信息并使用它。
    万事如意!

    【讨论】:

      【解决方案3】:

      只需添加对 HSQL 库的依赖即可。如果你使用的是 maven,那么:

          <dependency>
              <groupId>org.hsqldb</groupId>
              <artifactId>hsqldb</artifactId>
          </dependency>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-07-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-19
        • 2011-09-08
        • 2019-02-13
        相关资源
        最近更新 更多