我可以在同一Camel上下文中的Camel Routes之间共享本地数据吗?

时间:2018-03-06 12:24:04

标签: apache-camel

我有一个路由(route1),它将数据发送到HTTP端点。为此,它必须设置授权标头。 标头值每小时超时,必须续订。

为此,我创建了另一个路由(route2),它使用提供的凭据(getCredentials)定期从Web服务获取访问令牌。这很好用。

如何为access1提供访问令牌?

我尝试过简单的局部变量,静态变量,AtomicReference变量(volatile和static ...)

我的代码(为了便于阅读而缩短):

function (req, res)
     var folder = ['N','PP','Y'];//dynamic just an example

        for( var i = 0 ; i < folder.length ; i++) {
            var source = path.join(basePath,'/download/'+folder[i]);
            var dest =   path.join(basePath,'/createZip/'+folder[i]+'.zip');
            console.log('sending',folders[i])


            //this is async
            zipFolder(source,dest, function(err) {
                if(err) {
                    console.log('oh no!', err);
                } else {
                    console.log('EXCELLENT');//want to send the second,third,fourth if success
                }
            });
        }

缓存的值始终为空...

1 个答案:

答案 0 :(得分:2)

请勿使用constant设置动态值,仅限一次性常量。

而是使用内联处理器(可以使用java 8 lambda)或使用处理器进行消息转换/ setBody。