我有兴趣看到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上运行。
答案 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)
我能够弄清楚这一点:
假设您要使用3,如果您使用firebird
,则必须执行几个步骤提取存档,将jaybird * .jar和connector-api * .jar复制到/ usr / share / tomcat7 / lib。 在connector-api jar中,缺少类ResourceException。
警告:不要复制巨大的j2eeapi.jar,因为它们包含来自tomcat的servlet-api.jar的违规类
这就是全部。将配置放入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"
/>