Firebird,Jaybird和Hibernate的依赖关系

时间:2012-03-10 13:38:47

标签: java firebird

我有兴趣看到Firebird与Hibernate的性能,但我无法让它运行正常。我添加到我的pom.xml:

<dependency>
    <groupId>net.sf.squirrel-sql.thirdparty-non-maven</groupId>
    <artifactId>jaybird</artifactId>
    <version>2.1.6</version>
</dependency>

运行时,我一直得到:

java.lang.ClassNotFoundException: javax.resource.ResourceException

我尝试添加各种javax,javaee和其他依赖项(通过Maven),但我无法管理它。使用PostgreSQL,我没有任何问题,一切都按预期运行。

在Apache Tomcat 7.0.26上运行。

2 个答案:

答案 0 :(得分:3)

'问题'是Jaybird内部依赖于资源适配器的JavaEE概念,因此需要JavaEE中的一些类(特别是包含javax.resource包(和子包)的类。)你需要包含一个JavaEE jar ,或使用

<groupId>org.firebirdsql.jdbc</groupId>
<artifactId>jaybird-jdk18</artifactId>
<version>3.0.5</version>

这个应该自动下载所需的依赖项。

如果所有其他方法都失败了,请从http://www.firebirdsql.org/en/jdbc-driver/下载发行版并使用lib文件夹中的connector-api-1.5.jar。

BTW:我希望消除Jaybird 5中的这种依赖。

免责声明:我是Jaybird的开发者之一

答案 1 :(得分:0)

我能够弄清楚这一点:

  1. 您可以使用hibernate自己的连接池
  2. 您可以使用commons-dbcp连接池
  3. 您可以使用新的tomcat7的jdbc连接池。
  4. 假设您要使用3,如果您使用firebird

    ,则必须执行几个步骤
    1. http://sourceforge.net/projects/firebird/files/firebird-jca-jdbc-driver/2.2.0-release-jdk16/Jaybird-2.2.0JDK_1.6.zip/download

    2. 下载jdk
    3. 提取存档,将jaybird * .jar和connector-api * .jar复制到/ usr / share / tomcat7 / lib。 在connector-api jar中,缺少类ResourceException。

    4. 警告:不要复制巨大的j2eeapi.jar,因为它们包含来自tomcat的servlet-api.jar的违规类

      1. 如果您从tar安装了tomcat7,那就完全了。如果你使用ubuntu apt安装tomcat的软件包,那么从tomcat的下载端下载原始tar,解压缩并将tomcat-jdbc复制到tomcat的lib文件夹(对于ubuntu,即/ usr / share / tomcat7 / lib)
      2. 这就是全部。将配置放入context.xml,这就是

        <Resource
            name="jdbc/SOME_NAME"
            auth="Container"
            type="javax.sql.DataSource"
            factory="org.apache.tomcat.jdbc.pool.DataSourceFactory"
            testWhileIdle="true"
            testOnBorrow="true"
            testOnReturn="false"
            validationQuery="SELECT 'NOW' from RDB$DATABASE"
            validationInterval="30000"
            timeBetweenEvictionRunsMillis="30000"
            maxActive="100"
            minIdle="10"
            maxWait="10000"
            initialSize="10"
            removeAbandonedTimeout="60"
            removeAbandoned="true"
            logAbandoned="true"
            minEvictableIdleTimeMillis="30000"
            jmxEnabled="true"
            jdbcInterceptors="org.apache.tomcat.jdbc.pool.interceptor.ConnectionState;org.apache.tomcat.jdbc.pool.interceptor.StatementFinalizer"
            username="sysdba"
            password="masterke"
            driverClassName="org.firebirdsql.jdbc.FBDriver"
            url="jdbc:firebirdsql:IP:ALIAS?lc_ctype=UTF-8"
        />