我正在制作一个以 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/