我正在评估 Camel 在两个解耦系统之间创建集成。我需要 Camel 定期轮询 Web 服务以获取项目列表,对收到的项目进行一些转换,然后使用不同的传输将其发送到第二个系统。
我尝试了以下方法:
<route id="timer">
<from uri="timer://myTimer?period=5000"/>
<to uri="direct:queryWS"/>
</route>
<route id="ws">
<from uri="direct:queryWS"/>
<to uri="log:Querying WS"/>
<process ref="itemRetriever" />
</route>
其中 itemRetriever 是我之前设置的一个 bean,它实现了 org.apache.camel.Processor 并使用 Axis 进行 Web 服务调用。但是,当消息到达第二条路由时,Camel 会抛出异常,因为消息正文为空。
我想知道是否有更好的方法来定期轮询外部 Web 服务,或者至少如何克服这个错误。