You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker环境下Tomcat容器连接PostgreSQL容器失败问题咨询

问题排查与修复方案

核心错误根源

你当前的数据库连接配置混用了PostgreSQL与SQL Server的参数,导致驱动加载逻辑异常,触发类缺失报错:

  • JDBC URL前缀错误:jdbc:sqlserver://是SQL Server专属连接协议,PostgreSQL的正确前缀为jdbc:postgresql://
  • 驱动类名错误:PostgreSQL官方JDBC驱动的正确类名是org.postgresql.Driver,你填写的net.postgresql.Driver不存在,系统误加载了SQL Server的jtds驱动,触发了其依赖的jcifs类缺失报错
  • 固定IP不可靠:Docker容器重启后内网IP会自动变更,你创建的专用Docker网络自带DNS解析,直接用PostgreSQL的容器名作为访问地址即可,无需写死IP

修复后的connection.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/resto" docBase="/usr/local/exploded" antiJARlocking="true" >
<!-- If you're using Confluence 5.7 or below; change maxTotal to maxActive -->
<Resource name="jdbc/postgres" auth="Container" type="javax.sql.DataSource"
    username="resto"
    password="resto#test"
    driverClassName="org.postgresql.Driver"
    url="jdbc:postgresql://<替换为你的PostgreSQL容器名>:5432/Resto"
    maxTotal="25"
    maxIdle="10"
    validationQuery="select 1" />
</Context>

修正配置后无需额外添加jtds、jcifs相关依赖,系统不会再加载SQL Server专属类,类缺失报错会自动消失

额外校验项

  • 确认Tomcat容器的WEB-INF/lib目录下已放入匹配JDK版本的PostgreSQL JDBC驱动jar包
  • 确认两个容器都已加入你创建的专用Docker网络,可执行docker network inspect <你的网络名>查看网络成员列表
  • 确认PostgreSQL的pg_hba.conf配置已允许Tomcat所在网段的访问请求

内容的提问来源于stack exchange,提问作者tryhard

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.23 14:24:02