gpt4 book ai didi

java - Apache Camel 如何在解码中因未知属性而失败

转载 作者:行者123 更新时间:2023-12-02 09:04:16 25 4
gpt4 key购买 nike

我正在开发一个使用 Apache Camel 和 Spring-boot 的系统,如果请求对象中发送了未知参数,我希望我的路由返回错误。

我知道如何直接使用 Jackson 来做到这一点(配置对象映射器 bean),但就我而言,配置路由时无法传递适当的自定义对象映射器。

事实上,在我的 route 我有:

from(...)
.unmarshal().json(JsonLibrary.Jackson, MyInputDtoClass.class)
.process(FirstProcessor.BEAN)
.process(SecondProcessor.BEAN)
.to(OtherRoute.ROUTE)

如果我在 MyInputDtoClass 上添加 Jackson 注释:

@JsonIgnoreProperties(ignoreUnknown = false)
public class MyInputDtoClass {
...
}

即使我在请求正文中添加未知参数,它仍然会让请求被解码。如何阻止发送未知属性并返回错误?

最佳答案

您可以构建 JacksonDataFormat 以在 route 进行解码:

类似这样的事情

JacksonDataFormat dataFormat = new JacksonDataFormat();
dataFormat.setUnmarshalType(MyInputDtoClass.class);

//This will enable the feature you are looking for
dataFormat.enableFeature(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);

from(...)
.unmarshal(dataFormat)
.process(FirstProcessor.BEAN)
.process(SecondProcessor.BEAN)
.to(OtherRoute.ROUTE)

关于java - Apache Camel 如何在解码中因未知属性而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59947687/

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