我是Apache Camel的新手。有人可以解释骆驼的“直接:开始”是什么意思。 请参阅Apache Camel:“direct:start”端点 - 意味着什么?
from("direct:start")
.to("http://myhost/mypath");
感谢。
我是Apache Camel的新手。有人可以解释骆驼的“直接:开始”是什么意思。 请参阅Apache Camel:“direct:start”端点 - 意味着什么?
from("direct:start")
.to("http://myhost/mypath");
感谢。
上面的“直接:启动”仅仅是说路线从名为“start”的Direct Component开始。
直接端点提供路由的同步调用。如果您想将Exchange
发送到direct:start端点,您将创建一个ProducerTemplate
并使用各种发送方法。
ProducerTemplate template = context.createProducerTemplate();
template.sendBody("direct:start", "This is a test message");
没有什么特别的名字start
。这只是您在提到端点时要使用的名称,并且可能很容易就是direct:foo
。
谢谢。这仍然不清楚。让我更具体一些。 “开始”具有特殊意义还是可以是任意字符串“foo”或“somethingelse”?其次 - 我在上面发布的HTTP示例的上下文中是什么意思?再次感谢。 – 2012-03-09 16:05:33
没有特别的含义。这只是您要用来指代端点的名称。它可能很容易就是“直接:富”。 – gregwhitaker 2012-03-09 16:07:04
以下是骆驼网站上的[直接链接](http://camel.apache.org/direct.html) – 2012-07-31 21:28:42
direct:start提供了两个端点之间进行通信的同步方式,只有在您想使用骆驼消息而不是通用文件或xml消息进行通信时才会使用。
假设像直接路由作为名称start的方法,所以我们需要调用start方法/直接路由来执行某些操作。下面的例子会有所帮助。
当输入文件在XXXX位置可用并且到达线路时,第一条路线将被触发,实际流程将转到第二条路线。基本上,来自端点的直接路由将由某个生产者端点触发。
<route id="fileRoute">
<from uri="file:XXXX">
..
<to uri="direct:start">
</route>
<route id="directStartRoute">
<from uri="direct:start">
<to uri="http://myhost/mypath">
</route>
Apache的骆驼直接的基本上是同一背景下的骆驼从一个路由发送的Exchange到另一个。假设您从AMQ收到消息,并且想要为每封邮件填充标题,然后将其发送到邮件收件人列表。所以,在这里,你需要创建新的路由器,它具有如下描述
from(“direct:populateHeaders”)
.setHeader(“myHeader”, “myHeaderValue”)
.end()
,并从任何途径可以通过编写
...
.to(“direct:populateHeaders”)
...
它重要的是要记住,这将发送您的Exchange对象这条路线不适合你的骆驼上下文。
请注意,如果您正在寻找一条路线,当骆驼启动时,“直接:启动”不是你正在寻找 - 更多信息:http://stackoverflow.com/questions/7714211/apache -camel-triggering-a-task-on-startup-to-run-only-once – vikingsteve 2013-11-26 08:55:08