Java 如何在不同camel路由上的方法之间共享对象

Java 如何在不同camel路由上的方法之间共享对象,java,caching,apache-camel,Java,Caching,Apache Camel,我在网上搜索的时候运气不好,因为我认为这很简单,但显然不是。 我要做的就是在一个方法中创建一个HashSet,该方法在一个camel路由中调用,然后将这个HashSet传递给另一个camel路由中的一个方法。 我的搜索结果是我应该使用缓存,但我找不到任何简单的例子来说明如何实现这一点。 第一个路由中的方法findProperties创建了一个HashSet,我想在parseFile方法的第二个路由中使用它 from("file:{{List}}?noop=true") .autoStartup(

我在网上搜索的时候运气不好,因为我认为这很简单,但显然不是。 我要做的就是在一个方法中创建一个HashSet,该方法在一个camel路由中调用,然后将这个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实例中的类/静态级别变量一样简单,也可以使用ehcache等。选择权在您

下面是一些使用骆驼缓存的示例


一条路由调用另一条路由,我怎么能做到这一点?我不需要两条路由才能有两个fromfile:?为什么需要两个fromfile?这些文件不同吗?您希望在哈希集中存储什么类型的信息?