gpt4 book ai didi

java - Zalando RFC7807 为 Jackson Status 选择了错误的序列化器

转载 作者:行者123 更新时间:2023-12-01 20:12:42 26 4
gpt4 key购买 nike

在特定情况下,Jackson 为 Zalando 问题状态选择了错误的序列化器。它选择 EnumSerializer而不是 StatusTypeSerializer它应该。反序列化时,它确实需要正确的(这就是为什么我有下面的异常(exception))

可以使用 this project 重现该问题。只需运行 AccountResourceIntTest.testRegisterInvalidLogin 。它不会在较小的测试用例中发生,但在这个测试用例中可靠地发生。

如果有任何帮助的话,这是错误:

com.fasterxml.jackson.databind.JsonMappingException: Current token (VALUE_STRING) not numeric, can not use numeric value accessors at [Source: [B@2aa85cc4; line: 1, column: 10181] at [Source: [B@2aa85cc4; line: 1, column: 10180] (through reference chain: org.zalando.problem.DefaultProblem["status"]) Motivation for or Use Case

我不知道 Jackson 选择正确的序列化器的逻辑。但我知道使用了错误的序列化器。我的所有测试都没有发生这种情况。但是,每个约束验证错误都会失败。

有什么想法吗?

最佳答案

您没有将httpMessageConverters设置为restUserMockMvc

添加这个解决了我的问题:

.setMessageConverters(httpMessageConverters)

关于java - Zalando RFC7807 为 Jackson Status 选择了错误的序列化器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46428757/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com