java - Tomcat 连接池,为 web-app 安装 jdbc 驱动程序

标签 java tomcat jdbc connection-pooling

我正在制作一个以 Tomcat 6 作为容器的网络应用程序,并且我正在尝试使用连接池。我使用的jdbc驱动是jtds-1.2.2
当驱动程序 jar 放在 ${Catalina_Home}/lib 下时池工作正常,但我的托管服务提供商不允许我这样做。

当驱动程序放在 WEB-INF/lib 中时,我得到一个 CNF 异常。

有人可以提供一个解决方案,让我不必访问 tomcat 安装吗?

最佳答案

如果您无法控制服务器,那您就迷路了。只需自己创建连接池,而不是让容器来做。

我建议使用 c3p0为此(这比 Tomcat 的内置 DBCP 好得多,因为它被锁定到单个线程)。将 c3p0 库放入 /WEB-INF/lib 并根据 its documentation 创建它:

ComboPooledDataSource dataSource = new ComboPooledDataSource(); 
dataSource.setDriverClass("org.postgresql.Driver"); 
dataSource.setJdbcUrl("jdbc:postgresql://localhost/testdb");
dataSource.setUser("dbuser");
dataSource.setPassword("dbpassword"); 
// ...

Connection connection = null;
// ...
try {
    connection = dataSource.getConnection();
    // ...
} finally {
    // ...
    if (connection != null) try { connection.close(); } catch (SQLException logOrIgnore) {} // Always close resources in finally!
}

关于java - Tomcat 连接池,为 web-app 安装 jdbc 驱动程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2873510/

相关文章:

java - 使用 eclipse 和 tomcat 7 运行和部署 servlet

java - 错误 : "javax.servlet.ServletException: Failed to load test suite [SampleTest], Reason is [Class not found "SampleTest"] "

java - 如何修复 org.apache.derby.jdbc.AutoloadedDriver 在 Tomcat 关闭时注销失败?

java - 此代码的下载速度非常慢,是否有助于改进它?

java - Android ListView 元素的弹出选项卡 Activity

java - Tomcat7 SESSIONID在应用redis RedisSessionManager应用后不断变化

mysql - mysql docker容器的JDBC通信链接失败

oracle.jdbc.V8 在 Oracle 11g 中兼容

java - 有没有办法在不卸载 tesseract 的情况下禁用 Tika 中的 OCR 模式

java - 在 multiautocompletetextview 中输入双空格来替换逗号