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

Quarkus/Hibernate REST API无法获取JDBC连接问题求解

问题解决:Quarkus/Hibernate API调用登录接口时JDBC连接失败

问题现象

Quarkus/Hibernate REST API启动正常,但通过Swagger-UI触发登录流程调用登录API时,抛出以下异常:

Caused by: javax.persistence.PersistenceException: org.hibernate.exception.JDBCConnectionException: Unable to acquire JDBC Connection
Caused by: java.sql.SQLRecoverableException: Erreur d'E/S: The Network Adapter could not establish the connection
2022-11-15 14:03:18,857 WARN (Agroal_2230584771) Datasource 'default': Erreur d'E/S: The Network Adapter could not establish the connection

数据库URL配置为:jdbc:oracle:thin:@bodswv092:1521:DEMO


排查与解决步骤

  • 验证网络连通性

    1. 在应用服务器上执行 ping bodswv092,确认数据库服务器是否可达。如果无响应,排查网络防火墙规则、路由配置或数据库服务器是否在线。
    2. 测试数据库端口是否开放:执行 telnet bodswv092 1521 或 nc -zv bodswv092 1521,若连接失败,需确认数据库服务器的1521端口是否被防火墙拦截,或Oracle监听服务未运行。
  • 检查数据库URL格式正确性
    Oracle Thin驱动支持两种URL格式:

    • SID格式:jdbc:oracle:thin:@host:port:SID
    • 服务名格式:jdbc:oracle:thin:@//host:port/service_name
      如果DEMO是数据库服务名而非SID,需将URL修改为 jdbc:oracle:thin:@//bodswv092:1521/DEMO。可通过以下SQL在数据库端确认:
    -- 查询SID
    SELECT name FROM v$database;
    -- 查询服务名
    SELECT value FROM v$parameter WHERE name='service_names';
    
  • 确认数据库实例与监听状态
    在数据库服务器上执行:

    1. lsnrctl status:检查Oracle监听服务是否正常运行,且是否包含DEMO实例的监听配置。
    2. 登录数据库执行 SELECT status FROM v$instance;,确认实例状态为OPEN。若实例未启动,执行 startup 启动实例。
  • 核对Quarkus数据源配置
    检查application.properties(或application.yml)中的数据库配置:

    • 确认用户名、密码是否正确,无拼写错误。
    • 若数据库启用SSL连接,需添加对应配置属性,例如:
      quarkus.datasource.jdbc.additional-jdbc-properties.oracle.net.ssl_server_dn_match=true
      quarkus.datasource.jdbc.additional-jdbc-properties.oracle.net.ssl_version=1.2
      
    • 检查Agroal连接池配置,确保quarkus.datasource.jdbc.min-size、quarkus.datasource.jdbc.max-size等参数设置合理,避免连接池耗尽。
  • 验证JDBC驱动兼容性
    确认使用的Oracle JDBC驱动版本与数据库版本匹配:

    • Oracle 11g对应ojdbc6,12c/18c/19c对应ojdbc8,21c对应ojdbc11。
      在Quarkus的pom.xml中检查依赖:
    <dependency>
        <groupId>com.oracle.database.jdbc</groupId>
        <artifactId>ojdbc8</artifactId>
        <scope>runtime</scope>
    </dependency>
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 17:01:21