我正在尝试根据 json 模式验证传入的 json 字符串,但如果验证失败,我不会抛出异常,而是希望将验证错误与经过验证的 json 负载一起转发:
from("direct:myValidator")
.log("Validating json...")
.to("json-validator:myschema.json")
.onException(org.apache.camel.component.jsonvalidator.JsonValidationException.class)
.continued(true)
.transform().???;
所以理想情况下我会有一个像
"validatedJson":*original json*, "validationResult":*excepted integer but got string*"
之后一样的 json 对象。我知道通过 simple 和 ${exception.message} 我可以访问错误。但我没有设法将其转换为有效的 json 并将其与原始消息结合起来。
您需要使用 a 处理消息以
Processor
进行相应的转换。你可以在你的区块中做这样的事情onException
:首先,您将读取正文作为原始 json。正如您所知,您也可以获得例外。然后您将创建一个新的正文,其中包含原始 json 和错误消息。我们正在手动创建 json,但是当然,对于更复杂的结构,您应该使用库。