首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Camel设置标头

Camel设置标头
EN

Stack Overflow用户
提问于 2022-08-28 12:21:46
回答 1查看 157关注 0票数 0

我有一个端点,希望在将其发送到API之前设置一个标头。

代码语言:javascript
复制
Stream.of("a", "b").forEach(id) -> {
    from("azure-storage-blob://devstoreaccount1/hotfolder?serviceClient=#blobServiceClient&operation=listBlobs")
    .routeId(id)
    .autoStartup(false)
    .tracing()
     // this should happen before the the azure call
    .setHeader("MyHeader", () -> id)
    .process(exchange -> {
        ArrayList<BlobItem> items = exchange.getIn().getBody(ArrayList.class);
        for (BlobItem blobItem : items) {
            System.out.println(blobItem.getName());
        }
    });
}

稍后,当启动上下文时,我将在其他地方启动路由。

代码语言:javascript
复制
final Route route = camelContext.getRoute("a");
ServiceHelper.startService(route.getConsumer());

现在,它尝试引入一种新的路由来触发旧的路由并设置头。

代码语言:javascript
复制
from("direct:intermediate")
  .noAutoStartup()
  .routeId("intermediate")
  .to("direct:hf");

from("direct:hf")
  .setHeader("MyHeader", () -> id)
  .to("azure-storage-blob://devstoreaccount1/hotfolder?serviceClient=#blobServiceClient&operation=listBlobs")
  .process(exchange -> {
      ArrayList<BlobItem> items = exchange.getIn().getBody(ArrayList.class);
      for (BlobItem blobItem : items) {
          System.out.println(blobItem.getName());
      }
  });

final Route route = camelContext.getRoute("intermediate");
ServiceHelper.startService(route.getConsumer());

但这条路什么也做不了。有办法让骆驼在之前做点什么吗?

EN

回答 1

Stack Overflow用户

发布于 2022-10-07 20:46:39

仅仅因为还没有消息,就不可能在前面设置一个标头。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73518628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档