java - 如何在不同 Camel 路线上的方法之间共享对象

标签 java caching apache-camel

我在网上搜索了一些我认为很简单但显然并非如此的东西,但没有运气。
我想做的就是在 Camel 路由中调用的方法中创建一个 HashSet,然后将此 HashSet 传递给另一个 Camel 路由中的方法。
我的搜索返回的是我应该使用缓存,但我找不到任何示例(一个简单的示例)来向我展示如何实现这一点。
第一个路由中的方法“findProperties”创建了一个 HashSet,我想在“parseFile”方法的第二个路由中使用它。

from("file:{{List}}?noop=true")
.autoStartup(true)
.unmarshal().csv()
.to("bean:ParserUtils?method=findProperties")
.end();


from("file:{{Path}}?move={{processedPath}}")
.autoStartup(true)
.unmarshal().csv()
.to("bean:Parser?method=parseFile")
.end()

我真的很感激在缓存中获取和设置对象的简单示例或其他解决方案。

最佳答案

由于您的第一条路线不会调用第二条路线,因此它们之间没有消息传递来传递数据...所以是的,您需要使用一些外部手段来访问路线/线程之间共享的数据.. .

这可以像 ParserUtils 实例中的类/静态级别变量一样简单或使用 camel-cache (ehcache等),camel-hazelcast等等...选择权在你

这里有一些使用camel-cache的例子...

https://svn.apache.org/repos/asf/camel/trunk/components/camel-cache/src/test/java/org/apache/camel/component/cache/CacheProducerTest.java

关于java - 如何在不同 Camel 路线上的方法之间共享对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21681773/

相关文章:

c# - WSDL2REST - 有 C# 版本吗? (将 SOAP 转换为 RESTful Web 服务)

ios - 如何在 Meteor 中缓存图像?

vue.js - nuxt.js - 如何在服务器端为所有客户端缓存 axios 调用

java - 简单聚合策略 Apache Camel

java - 存储在数组中的 HashMap 中所有元素的迭代器

java - 替换 Java Bean 的 instanceof

javascript - list 更新但允许缓存时如何使浏览器更新脚本文件?

java - 如何将消息发送到 IBM MQ 集群中不同队列管理器和主机名中托管的不同队列

java - Apache Camel XML 配置规则和限制

java - 从 JTable 中删除一行