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

NetBeans电商项目JDBC连接池zeroDateTimeBehavior参数错误求助

解决JDBC连接池zeroDateTimeBehavior参数错误问题

环境信息

  • Apache Netbeans IDE 15
  • MySQL WorkBench 8.0 CE
  • Eclipse GlassFish 6.2.5(build 6.x-b66-g0159b68 2022-02-12T17:39:59+0000)
  • 驱动:mysql-connector-j-8.0.31(需保留)、mysql-connector-java-5.1.47(需移除)

问题核心

浏览器报错提示:

jakarta.servlet.jsp.JspException: Unable to get connection, DataSource invalid: java.sql.SQLException: Error in allocating a connection. Cause: Connection could not be allocated because: The connection property 'zeroDateTimeBehavior' only accepts values of the form: 'exception', 'round' or 'convertToNull'. The value 'CONVERT_TO_NULL' is not in this set.

原因是MySQL Connector/J 8.x(cj版本)要求zeroDateTimeBehavior参数值必须为小写的convertToNull,而当前配置用了大写的CONVERT_TO_NULL。

解决步骤

1. 清理冲突驱动

彻底移除项目中的mysql-connector-java-5.1.47,只保留mysql-connector-j-8.0.31,避免新旧驱动导致的配置识别异常。

2. 修正GlassFish连接池属性

  • 打开GlassFish域管理控制台,找到与jdbc/OkStore关联的JDBC连接池
  • 进入「额外属性(Additional Properties)」页面
  • 找到zeroDateTimeBehavior属性,将值从CONVERT_TO_NULL修改为convertToNull
  • 保存配置后重启连接池,测试ping确认连接正常

3. 修正web.xml资源类型

JSTL的<sql:query>需要标准的javax.sql.DataSource类型,修改web.xml中的配置:

<resource-ref>
    <description>Connects to database for OkStore application</description>
    <res-ref-name>jdbc/OkStore</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
    <res-auth>Container</res-auth>
    <res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>

4. 验证数据源类配置

确保GlassFish中JDBC资源jdbc/OkStore关联的连接池,使用的数据源类为com.mysql.cj.jdbc.MysqlDataSource,而非旧的com.mysql.jdbc.jdbc2.optional.MysqlDataSource。

额外排查点

如果连接池未显式设置zeroDateTimeBehavior,检查JDBC URL参数,若URL包含zeroDateTimeBehavior=CONVERT_TO_NULL,同样修改为小写的convertToNull。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 03:20:38