java - 从 Wildfly 11 升级到 Wildfly 15 时出现日期序列化问题

标签 java spring wildfly java-11 wildfly-15

我们最近从 Wildfly 11 迁移到 Wildfly 15,从 Java 8 迁移到 Java 11,并注意到 Jackson 序列化 Date 对象的方式发生了变化。我们使用 Jackson v2.9.8 进行对象序列化,使用 Spring v5.0.9。

在升级之前,日期对象将以 ISO 格式序列化,例如“2019-11-12”,但升级后,日期字段开始显示为时间戳,例如“1573516800000”。之前有其他人遇到过这个问题吗?这可以在 standalone.xml 中配置吗?

Wildfly 11 示例

pre-upgrade date serialization

Wildfly 15 示例

post-upgrade date serialization

MySQL中该字段配置为DATE

enter image description here

示例实体

public class Entity implements java.io.Serializable {

  @Id
  @Column(name = "id")
  private Integer id;

  @Column(name = "value_date")
  private java.sql.Date valueDate;

  public java.sql.Date getValueDate() {
    return valueDate;
  }

  public void setValueDate(java.sql.Date valueDate) {
    this.valueDate = valueDate;
  }
}

编辑:

  • 我们尝试将 java.sql.Date 更改为 java.util.Date,但没有成功

最佳答案

虽然我无法确定您当前的设置/配置,但如果您配置 ObjectMapper,您可能会得到预期的行为:

@Bean
@Primary
public ObjectMapper objectMapper(Jackson2ObjectMapperBuilder builder) {
    ObjectMapper objectMapper = builder.build();
    objectMapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false);
    return objectMapper;
}

关于java - 从 Wildfly 11 升级到 Wildfly 15 时出现日期序列化问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56527367/

相关文章:

Spring 的 PropertyPlaceHolderConfigurer 不会忽略无法解析的文件

java - 在 WildFly 8.2.0 Final 版本中添加模块

java - 如何在具有不同java版本的wildfly服务器上运行两个Web应用程序?

jboss - 禁用 Jboss wildlfy 欢迎内容

Java 泛型 - 无法使用扩展泛型覆盖方法

java - 如何修复无法解析 "CELL_TYPE_BLANK"?

java - Tomcat 9 中请求 header 中的特殊字符问题

java - 从线程使用的列表中删除时出现异常

java - 在现有的 Axis 1.4 web 服务中从 Spring 2.5 迁移到 3

基于 Spring Security 一次性密码 (OTP) 的登录