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

Apache camel从body()获取值

松亦
2023-03-14
public class MyCamelRoute {

    public static void main(String... args) {
        CamelContext context = new DefaultCamelContext();
        try {
            context.addRoutes(new CSVRoute());
            context.start();
            Thread.sleep(20000);
            context.stop();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

class CSVRoute extends RouteBuilder {

    public void configure() throws Exception {
        CsvDataFormat csv = new CsvDataFormat();
        from("file:my_csv.csv&noop=true")
        .split(body().tokenize("\n")).streaming()
        .unmarshal(csv)
        .log(LoggingLevel.INFO, body().toString());
    }
}

13:30:42.739[Camel(camel-1)线程#1-文件://my_csv.csv]信息路由1-简单{[[567892]]}

13:30:42.741[Camel(camel-1)线程#1-文件://my_csv.csv]信息路由1-简单{[[269041]]}

13:30:42.743[Camel(camel-1)线程#1-文件://my_csv.csv]信息路由1-简单{[[622768]]}

我以前所做的只是将它发送到一个进程,然后使用exchange.getbody().getin()并从那里检查/强制转换它,但我想尽量避免使用进程。

非常感谢所有的帮助

共有1个答案

荀增
2023-03-14

要记录邮件正文,必须使用

.log(LoggingLevel.INFO, "${body}");

因为信息是默认的,所以做起来更快

.log("${body}");

你还可以写一篇文章

.log("The message contains: ${body}");
 类似资料:
  • 在 Nginx 的典型应用场景中,几乎都是只读取 HTTP 头即可,例如负载均衡、正反向代理等场景。但是对于 API Server 或者 Web Application ,对 body 可以说就比较敏感了。由于 OpenResty 基于 Nginx ,所以天然的对请求 body 的读取细节与其他成熟 Web 框架有些不同。 最简单的 “Hello ****” 我们先来构造最简单的一个请求,POST

  • 我正在尝试向异步路由发送消息,但它不起作用。我刚刚在github上创建了一个项目来模拟这个问题

  • 我正在使用节点的IMAP模块。js来解析IMAP电子邮件的正文。我可以将主体作为原始HTML数据返回给我,但这包括标记和其他不必要的数据。我想要键入的文本(删除任何div、样式等) 以下是我目前使用的代码: 是否有一种方法可以解析为纯文本而没有任何标签或其他超文本标记语言信息?

  • 我正在使用apache camel cxf开发一个Web服务(肥皂),我遇到了这个错误。 Java . lang . illegalargumentexception:Part { http://blue print . camel . ngt . TN/}返回的类型应为[ltn . ngt . camel . blue print . WB _ subscriptions;,而不是org . A

  • 我有一个restendpoint示例。org,返回表单的json响应 我的路线是这样的 我读过关于轮询消费者的内容,但找不到如何继续轮询endpoint的示例,直到它返回“success”响应。 是否应该使用轮询消费者?如果是这样的话,可以举一个与我的案例相关的例子。用于轮询restendpoint的任何其他资源都非常有用。

  • 我有一个Lambda POST函数,我要发送一个json体进行测试,如: 但我不知道如何在我的代码上读懂那具尸体。 最初我有一个GET API,我使用以下命令调用该API: