Resteasy 在 wildfly 14 (Java 11) 上以文本格式导出日期,而不是在 wildfly 9 (Java 8) 上以数字格式导出日期
Resteasy exports dates in textual format on wildfly 14 (Java 11) as opposed to numeric format in wildfly 9 (Java 8)
我有一个项目在 Java 8 运行 和 Wildfly 9 上运行良好。
我使用一些 REST 端点将一些 Java 对象序列化为 JSON。这是用 Resteasy 和 @Produces(MediaType.APPLICATION_JSON)
.
配置的
我现在正在尝试将项目转换为在 wildfly 14 和 Java 11 上工作。
由于某些原因,在以前的版本中,Date
对象被导出为数值。在新环境中,日期以文本格式导出(例如 2018-12-03T10:05:33.39Z[UTC]
)。
奇怪的是,一些对象的一些数据属性仍然以数字格式导出,而另一些则以文本格式导出。
我已经尝试启用 WRITE_DATES_AS_TIMESTAMPS
功能,但这并没有改变结果。
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.ext.ContextResolver;
import javax.ws.rs.ext.Provider;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
@Provider
@Produces(MediaType.APPLICATION_JSON)
public class JacksonConfig implements ContextResolver<ObjectMapper> {
private final ObjectMapper objectMapper;
public JacksonConfig()
{
objectMapper = new ObjectMapper();
objectMapper.enable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
}
@Override
public ObjectMapper getContext(Class<?> objectType)
{
return objectMapper;
}
}
问题与从 jackson 到 jsonb 的切换有关。
在此thread中进一步解释。
我有一个项目在 Java 8 运行 和 Wildfly 9 上运行良好。
我使用一些 REST 端点将一些 Java 对象序列化为 JSON。这是用 Resteasy 和 @Produces(MediaType.APPLICATION_JSON)
.
我现在正在尝试将项目转换为在 wildfly 14 和 Java 11 上工作。
由于某些原因,在以前的版本中,Date
对象被导出为数值。在新环境中,日期以文本格式导出(例如 2018-12-03T10:05:33.39Z[UTC]
)。
奇怪的是,一些对象的一些数据属性仍然以数字格式导出,而另一些则以文本格式导出。
我已经尝试启用 WRITE_DATES_AS_TIMESTAMPS
功能,但这并没有改变结果。
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.ext.ContextResolver;
import javax.ws.rs.ext.Provider;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
@Provider
@Produces(MediaType.APPLICATION_JSON)
public class JacksonConfig implements ContextResolver<ObjectMapper> {
private final ObjectMapper objectMapper;
public JacksonConfig()
{
objectMapper = new ObjectMapper();
objectMapper.enable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
}
@Override
public ObjectMapper getContext(Class<?> objectType)
{
return objectMapper;
}
}
问题与从 jackson 到 jsonb 的切换有关。
在此thread中进一步解释。