请找到以下路线计划,
<routes xmlns="http://camel.apache.org/schema/spring">
<route id="com.performancebikes.RouteScript" autoStartup="false">
<from uri="b2bmbFileSystem:com.performancebikes/tempSFTP/in"/>
<convertBodyTo type="java.lang.String" charset="UTF-8"/>
<convertBodyTo type="org.w3c.dom.Document" charset="UTF-8"/>
<split>
<xpath>/B2B_Documents/B2B_PurchaseOrder/Header/HeaderInfo/PurchaseOrderNumber/text()</xpath>
<setHeader headerName="body">
<constant>${body}</constant>
</setHeader>
<log message="${body}"/>
<to uri="b2bmbScript:com.trainingaccount11/Ship" />
</split>
</route>
</routes>
在这个 Xpath 表达式中,我按预期得到 PurchaseOrderNumber 作为 152346。现在我将 152346 设置为 header 中的变量主体,并将其作为输入发送到名为 Ship 的脚本。
但是我的脚本没有得到 152346 的值。它会变成空。
请告诉我如何将 152346 值设置为 header 并将其作为输入传递到我的脚本。
我的脚本将 152346 作为输入。
最佳答案
b2bmbScript
不是开箱即用的 Apache Camel 组件,因此它必须是某种第三方/自制组件。
因此,无论该组件支持获取 header 还是其他内容,都完全取决于该组件的实现方式。任何 Camel 组件都可以访问 Camel Exchange
中的所有数据和Message
实例,因此可以获取正文、 header 等。
那么看看这个组件是如何实现的,它的文档等等。
关于routes - Apache Camel 路由将值设置为 setHeader 并将该值作为输入传递给脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49532699/