我创建了一条应该从OPC-UA端点读取的路由。应基于计时器每秒执行读取操作。我找到的每个示例都显示该路由只能有一个from
项。我的路线看起来像这样:
<camelContext xmlns="http://camel.apache.org/schema/blueprint">
<route id="opctorest">
<from uri="timer://simpleTimer?period=1000"/>
<log message="Triggered Route: opctorest: Sensorreading body: ${body}"/>
<to uri="milo-client:tcp://0.0.0.0:4840/freeopcua/server?nodeId=2&namespaceUri=http://examples.freeopcua.github.io"/>
<convertBodyTo type="java.lang.String"/>
<to uri="stream:out"/>
</route>
</camelContext>
当我部署路由时,它会每秒调用一次,但它将写入端点,因为调用是在to
元素中声明的。我怎么能把这变成一个读?到目前为止我找不到解决方案。谢谢!
答案 0 :(得分:2)
当您想要在路线中间阅读时,使用.enrich()
将其变为读取。
http://camel.apache.org/content-enricher.html
对于您的示例类似于(未测试):
<camelContext xmlns="http://camel.apache.org/schema/blueprint">
<route id="opctorest">
<from uri="timer://simpleTimer?period=1000"/>
<log message="Triggered Route: opctorest: Sensorreading body: ${body}"/>
<enrich uri="milo-client:tcp://0.0.0.0:4840/freeopcua/server?nodeId=2&namespaceUri=http://examples.freeopcua.github.io"/>
<convertBodyTo type="java.lang.String"/>
<to uri="stream:out"/>
</route>
</camelContext>