gpt4 book ai didi

java - zalando Problem-spring-web 生成不需要的堆栈跟踪

转载 作者:行者123 更新时间:2023-12-02 05:16:06 38 4
gpt4 key购买 nike

我正在尝试使用 zalando Problem-spring-web https://github.com/zalando/problem-spring-web 在我的 Spring Boot 项目中实现 RFC 7807

我已按照本指南完成设置 https://github.com/zalando/problem-spring-web/tree/master/problem-spring-web

当抛出异常时,Problem 实例确实会生成,但其序列化 JSON 形式并不符合预期,最值得注意的是,在不应该包含的情况下包含了堆栈跟踪。

经过一些调试,似乎 ProblemModule 没有在用于序列化问题的 ObjectMapper 中注册(其 setupModule 方法)从未被调用)。我的印象是,声明 Module 类型的 bean 就足以让 Spring 拾取它并在 ObjectMapper 中注册,但这里不会发生。

医生说

In case you want to enable stack traces, please configure your ProblemModule as follows:

ObjectMapper mapper = new ObjectMapper()
.registerModule(new ProblemModule().withStackTraces());

这似乎意味着您需要实例化自己的ObjectMapper,但是如何确保在反序列化问题时库使用它?

最佳答案

由于我无法让ObjectMapper来注册我的模块,我想我必须自己做,所以我想出了这个似乎有效的解决方案:

@Configuration
public class ProblemConfiguration implements InitializingBean {

@Autowired
ObjectMapper objectMapper;

@Override
public void afterPropertiesSet() {
objectMapper.registerModules(
new ProblemModule(),
new ConstraintViolationProblemModule()
);
}
}

如果有人知道为什么它没有按预期工作,我很高兴听到它:)

关于java - zalando Problem-spring-web 生成不需要的堆栈跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56291441/

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