当前位置: 首页 > 知识库问答 >
问题:

如何在驼峰路线中访问正文/交换

荀豪
2023-03-14

我正在尝试以骆驼路线记录交换或尸体,如下所示:

<log message="body:${body}"/>

这张照片是空白的,比如“身体:”。但是,通过传递以下参数,在同一路径中调用某些处理器:

<bean id="userBean" method="findSomeUser(${body.getUserId})"/>

如果要查看exchange的内容,如何从camel路由记录exchange/body?

共有3个答案

益光亮
2023-03-14

日志消息中的表达式${body}是正确的,您的body可能是空的,因此它会这样打印出来。尝试使用setBody参数将正文设置为某个值,然后尝试打印正文。

蒯翰墨
2023-03-14

你使用的表达是正确的,但你的身体当时是空的。尝试从此路线中删除setBody零件,您将得到相同的结果。

 <route >
    <from uri="timer://foo?fixedRate=true&amp;period=5000"/>
    <setBody>
          <constant>MESSAGE</constant>
     </setBody>
    <log message="body:${body}"/>
 </route>
赵俊晤
2023-03-14

如果您使用的是Java DSL,这就是打印消息正文的方式;

from("file://xml/inbox")
    .log("${body}");

如果您也想编辑您的正文或使用它,您可以在Process()方法中使用Camel处理器实现,如下所示,这样您就可以通过Exchange对象获取正文或更新正文;

from("file://xml/inbox")
    .log("${body}")
    .process(new Processor() {
        @Override
        public void process(Exchange exchange) throws Exception {
            String myBody = exchange.getIn().getBody();

            System.out.println("This is my body: " + myBody);
        }
    })
    .log(LoggingLevel.INFO, "Processed");
 类似资料:
  • 我编写了一个应用程序来加载骆驼路线。 我有一个Spring-Camel实例。现在我将加载“模块”来订购我的路线,并有能力通过该模块取消/激活一组路线。 因此,我编写了一个XML文件,并将其解组到Java类中。每个模块现在都是一个Java类。我想在这个Java类中定义骆驼路线。 当我从RouteBuilder扩展Java类时,JAXB不会对其进行编组。 你们中的一些人知道我如何定义我的路由,比如"f

  • 我将数据插入到多个表中,我使用mybatis组件来实现这一点。在插入数据之前,我还需要创建一个临时表。高层概述如下: 获取要插入的数据 步骤2到5应该是他们自己的单一事务,以防出现故障。我现在有这个: CreateTmpLinksTable需要有权访问当前连接,这样临时表的创建就不会在不同的事务中发生(如果有关系,以PostgreSQL为目标)。 我目前有: 我也没有设置我的交易管理器。我怀疑我必

  • 我知道已经提出了许多关于同样的问题,但没有一个对我的案件有所帮助。 在这里,我试图在Split的第一次迭代中将一些值设置到Header中,然后在拆分的第二次迭代中,我需要旧的交换值将其附加到当前值。 代码:SomeDummyClass2.java 骆驼路线: 我已经通过了其他一些问题,他们要求使用CamelSplitIndex或AggregationStrategy,但我是新手,有人能帮帮我吗?

  • 我在运行elasticsearch的服务器上通过80代理了端口9200。我有一个骆驼路由,需要将文档索引到此服务器。 camel elasticsearch插件是否支持该功能?ie通过非9300端口访问弹性搜索? 我知道端口9300使用本机elasticsearch传输协议。 我的选择是什么?我可以通过apache代理9300吗?我不确定这是否有效。 还是camel elasticsearch插件

  • 有一条骆驼路线,它被处理,异常由处理。代码如下所示: 它是有效的,并且在错误被处理后,事务有一个提交:,但是然后消息再次被放入输入队列中,事务从头开始(无尽循环)。 我们正在使用IBM MQ,我认为这种回滚是由MQ执行的,而不是从camel路线执行的。所以问题是:我能告诉MQ我处理了异常,并且它不应该再次回滚吗?

  • 关于ApacheCamel的简短问题。我有以下场景,其中我的服务器接收jms消息,然后转换为csv文件,然后插入DB。为此,我有两个bean: xml2csv 我使用路由像: 当"路由"一个文件从-到,它是移动像一个消息?或者把问题放在不同的地方,ApacheCamel是否获取一个文件,将其包装为消息,并将其路由到bean或组件? 我的理解是正确的还是错误的。