2017-02-23 93 views
0

我希望开发一个通用的java bean,将包含在我所有的骆驼路由中(用于个性化日志记录目的)。该路由将在处理器中调用我的java函数,并将交换对象(如果需要的话还有其他东西)传递给它。如何检索Apache骆驼端点使用的协议

如何检测路由侦听的第一个端点的类型?它可以来自于ftp,http,jms等......并且我想记录的相关信息根据端点协议在不同的报头中,例如ftp的“CamelFileName”。

我有一种变通方法测试,如果那么“CamelFilename”头存在,我知道端点监听到FTP服务器上,或者我可以解析endpointURI,但有一个更可靠/接种函数来得到这个?

回答

0

您可以使用getFromEndpointgetFromRouteId从Exchange获取路由。

见交易所javadoc:http://static.javadoc.io/org.apache.camel/camel-core/2.18.2/org/apache/camel/Exchange.html

+0

谢谢克劳斯。正如我所说我可以检索端点,但不能找到它的哪些属性会给我的协议。 getFromRouteId也返回一个带有URI的字符串,你的意思是我需要搜索到它的子字符串?没有更准确的属性或功能来获取此信息? – Loko

+0

从终端,你可以得到的网址,并在那里你可以找到协议 –

+0

但这正是我在我的第一个消息谈论的。我可以做到这一点,但我愿意,如果有一个更可靠的方法来做到这一点,真正的属性功能 – Loko