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

升级Tomcat服务器Oracle驱动至ojdbc17后UCP启动失败及DH密钥协商异常求助

升级Tomcat服务器Oracle驱动至ojdbc17后UCP启动失败及DH密钥协商异常求助

最近我给部署在Tomcat上的Java17应用升级了Oracle驱动,从原来的ojdbc8换成了ojdbc17和ucp17.jar,结果现在数据库连接直接报错了😭。

报错信息如下:

org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception is java.sql.SQLException: UCP-0: Unable to start the Universal Connection Pool
    at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:83)
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:646)
    at org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:960)

Caused by: java.lang.RuntimeException: java.lang.IllegalArgumentException: when l value specified, it must be less than bitlength(p)
    at oracle.net.aso.DiffieHellman$DHJCEWrapper.getPublicKey(DiffieHellman.java:148)
    at oracle.net.ano.DataIntegrityService.receiveServiceData(DataIntegrityService.java:253)
    at oracle.net.ano.Service.receiveSelection(Service.java:360)

And the last caused by is : 
Caused by: java.lang.IllegalArgumentException: when l value specified, it must be less than bitlength(p)
    at org.bouncycastle.crypto.params.DHParameters.<init>(Unknown Source)
    at org.bouncycastle.crypto.params.DHParameters.<init>(Unknown Source)
    at org.bouncycastle.jce.provider.JDKKeyPairGenerator$DH.initialize(Unknown Source)
    at java.base/java.security.KeyPairGenerator.initialize(KeyPairGenerator.java:436)

之前我的类路径里有个旧版本的Bouncy Castle包bcprov-jdk16:1.46,我想着是不是版本太老不兼容Java17和新驱动,就把它升级成了bcprov-jdk18on,但还是报同样的错,实在没辙了。有没有懂的大佬给指点下方向呀?

备注:内容来源于stack exchange,提问作者YS_NE

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 20:19:31