Apache camel Camunda与Camunda bpm camel community edition的集成将删除路由之间的exchange属性集

Apache camel Camunda与Camunda bpm camel community edition的集成将删除路由之间的exchange属性集,apache-camel,camunda,Apache Camel,Camunda,将Camunda与Apache Camel Community Edition集成,并面临在服务任务2中访问时放弃上图中服务任务1中设置的Exchange属性的问题。这两个服务任务都在调用${camel.sendTo('direct:one')}和${camel.sendTo('direct:two')}显然,似乎只有在直接端点之间路由时才保留exchange属性,但在这种情况下,属性会被删除 路由1和路由2 尽管您将发送到直接端点,但我认为,由于每个路由都与单独的服务任务连接,因此将创建新的交

将Camunda与Apache Camel Community Edition集成,并面临在服务任务2中访问时放弃上图中服务任务1中设置的Exchange属性的问题。这两个服务任务都在调用
${camel.sendTo('direct:one')}
${camel.sendTo('direct:two')}
显然,似乎只有在直接端点之间路由时才保留exchange属性,但在这种情况下,属性会被删除

路由1和路由2

尽管您将发送到直接端点,但我认为,由于每个路由都与单独的服务任务连接,因此将创建新的交换。您可以通过记录每个路由的exchangeId来确认这一点。在每个路由中,只需添加一个
.log(“${exchangeId}”)
。由于属性是交换的一部分,而不是消息,因此这些属性将丢失。您可以尝试在标题中设置数据并进行检查

@Override
    public void configure() throws Exception {
        from("direct:one")
                .bean(SomeClass.class, "someMethod")
                .to("http4://localhost:8002/one")
                .bean(SomeClass.class, "someMethod")
    }

@Override
    public void configure() throws Exception {
        from("direct:two")
                .bean(SomeClass.class, "someMethod")
                .to("http4://localhost:8002/two")
                .bean(SomeClass.class, "someMethod")
    }