gpt4 book ai didi

java - 验证后在分离器中找不到处理器。

转载 作者:行者123 更新时间:2023-12-01 11:15:44 25 4
gpt4 key购买 nike

我有一个 Camel 路由,需要从 FTP 接收 XML 文件作为流,对其进行验证并拆分。

在验证过程中一切正常,但随后分割无法按预期进行。调试时,我发现当原始消息是流时,拆分进程找不到任何处理器。对我来说,它看起来非常像一个错误。

     from("direct:start")
.pollEnrich("ftp://user@host:21?fileName=file.xml&streamDownload=true&password=xxxx&fastExistsCheck=true&soTimeout=300000&disconnect=true")
.to("validator:myXsd.xsd")
.split().tokenizeXML("myTag")
.to(to)
.end();

在这种情况下,我可以看到 Exchange 进入了拆分器,但没有找到处理器,并且拆分没有执行任何操作。如果我删除验证,行为会有所不同:

     from("direct:start")
.pollEnrich("ftp://user@host:21?fileName=file.xml&streamDownload=true&password=xxxx&fastExistsCheck=true&soTimeout=300000&disconnect=true")
.split().tokenizeXML("myTag")
.to(to)
.end();

在这种情况下,分离器工作正常。

此外,如果 XML 文件不是来自流,那么一切都很好。

   from("file:file.xml")
.to("validator:myXsd.xsd")
.split().tokenizeXML("myTag")
.to(to)
.end();

我将 Camel 版本更新到 2.15.2,但仍然遇到相同的错误。

最佳答案

我不知道 validator 是如何工作的,但如果正在更改消息正文,请尝试将其存储为 header 或属性,例如: .setHeader("headerName",simple("${body}")) 和 validator .setBody(simple("${header.headerName}"))

之后

关于java - 验证后在分离器中找不到处理器。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31838788/

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