Tomcat 7应用程序和derby数据库之间的连接问题。

时间:2013-08-27 05:19:17

标签: hibernate maven ubuntu tomcat7 derby

我遇到了问题,我使用带有Derby数据库的hibernate创建了一个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的一些关于hibernate依赖关系的摘录:

            <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工作。我希望有人可以帮助我

问候

1 个答案:

答案 0 :(得分:2)

如果您使用的是derbyclient,则驱动程序应为org.apache.derby.jdbc.ClientDriver EmbeddedDriver用于嵌入式derby db