我有一个问题,我使用带有 Derby 数据库的休眠创建了一个 Web 应用程序。此开发阶段的应用程序将部署在 Tomcat 7 服务器中。此应用程序包含一些服务、daos 和 pojos。问题是,当我使用 main 作为桌面应用程序运行一些逻辑时,它可以毫无问题地建立连接,但是当我将它部署到 tomcat 服务器中时,我可以在日志中看到以下堆栈跟踪
org.hibernate.exception.JDBCConnectionException: Could not open connection
at ...
at ...
Caused by: java.sql.SQLException: No suitable driver found for jdbc:derby://localhost:1527/calidad
at ...
at ...
这里也是hibernate.cfg.xml中的hibernate映射配置:
<hibernate-configuration>
<session-factory>
<property name="connection.driver_class">org.apache.derby.jdbc.EmbeddedDriver</property>
<property name="connection.url">jdbc:derby://localhost:1527/calidad</property>
<property name="dialect">org.hibernate.dialect.DerbyDialect</property>
<property name="hibernate.generate_statistics">true</property>
<property name="show_sql">true</property>
</mapping>
</session-factory>
</hibernate-configuration>
这对我来说很奇怪,因为两次执行都使用了相同的配置。下面你可以看到我的 pom.xml 关于休眠依赖的一些摘录:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.1.5.Final</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.5.6</version>
</dependency>
<dependency>
<groupId>c3p0</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<version>10.7.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derbyclient</artifactId>
<version>10.7.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derbynet</artifactId>
<version>10.7.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derbytools</artifactId>
<version>10.7.1.1</version>
</dependency>
我还手动将所有 derby jar 添加到了 tomcat 的 lib 文件夹中,但结果是一样的。顺便说一句,我在 Ubuntu 12 中工作。我希望有人可以帮助我
问候