Camel Java DSL – 在头文件中的ENUM路由 – 基于conent的路由器或动态路由器
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Camel Java DSL – 在头文件中的ENUM路由 – 基于conent的路由器或动态路由器,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1118字,纯文字阅读大概需要2分钟。
内容图文
![Camel Java DSL – 在头文件中的ENUM路由 – 基于conent的路由器或动态路由器](/upload/InfoBanner/zyjiaocheng/720/789179112da84bc7b1413842ee362b8f.jpg)
我有一个bean,它使用Camel中的ProducerTemplate生成对象并将它们发送到SEDA队列.
我发送了一个正文和标题:
producerTemp.sendBodyAndHeader(document, "sourceSystem", sourceSys);
这里的头名是sourceSystem,头对象值是一个ENUM(sourceSys),它包含包含许多不同属性的文档对象的源.
我想从SEDA队列以并发方式提取消息,并根据sourceSys枚举的值将它们发送到不同的端点.
什么是骆驼使用它最有效的EIP,有没有人有一个使用Java DSL的例子,我不知道如何测试Enum的价值?
我在想我做这样的事情:
from("seda:a")
.choice()
.when(header("foo").isEqualTo(SourceSysEnum.SYSTEM1))
.to("seda:b")
.when(header("foo").isEqualTo(SourceSysEnum.SYSTEM2))
.to("seda:c")
.otherwise()
.to("seda:d");
..?
解决方法:
您可以使用收件人列表EIP
http://camel.apache.org/recipient-list.html
然后例如使用java bean来计算消息应该去的uri.
from("seda:a")
.recpientList().method(MyBean.class, "whereToGo");
在bean中你可以使用bean参数绑定.
> http://camel.apache.org/bean-binding.html
> http://camel.apache.org/parameter-binding-annotations.html
所以你可以绑定标题如下:
public class MyBean {
public String whereToGo(String body, @Header("foo") SourceSysEnum sys) {
...
}
}
如果您不需要邮件正文,则可以省略该参数.
内容总结
以上是互联网集市为您收集整理的Camel Java DSL – 在头文件中的ENUM路由 – 基于conent的路由器或动态路由器全部内容,希望文章能够帮你解决Camel Java DSL – 在头文件中的ENUM路由 – 基于conent的路由器或动态路由器所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。