【问题标题】:Apache camel getbody as custom classApache camel getbody 作为自定义类
【发布时间】:2016-01-05 09:08:14
【问题描述】:

这个问题很简单,也许是因为我在这个过程中有点困惑。 我正在尝试做的代码示例中显示了:

cc.addRoutes(new RouteBuilder() {

        @Override
        public void configure() throws Exception {
            from("file://files?noop=true")
                    .split()
                    .tokenize("\n")
                    .split()
                    .method(SplitToken.class, "hashTokens")

和:

class SplitToken {
@SuppressWarnings("unchecked")
public static List<HashMap<String, Integer>> hashTokens(final Exchange exchange) {
    List<String> oldstr = exchange.getIn().getBody(List<String>);
    //Create a key value hashmap from accumulated string list
    }
}

但返回错误:

expression required.

关于我们如何实现具有所需类的 getbody 的任何想法? (由于第一个拆分方法返回一个字符串列表,但我无法在第二个拆分中检索它,或者我可以吗?)

【问题讨论】:

    标签: java apache-camel javabeans


    【解决方案1】:

    据我所知,您无法使用getBody 获得通用列表。这可能有效:

    List<String> oldstr = (List<String>)exchange.getIn().getBody(List.class);
    

    或者更好的是,您可以使用@Body 注释为您制作骆驼提取体:

    public static List<HashMap<String, Integer>> hashTokens(final Exchange exchange, @Body List<String> oldStr) {
        //Create a key value hashmap from accumulated string list
        return new ArrayList<>();
    }
    

    【讨论】:

    • @Body 似乎是一个不错的解决方案,但我似乎不明白如何在骆驼聚合中使用相同的方法(需要 2 次交换)
    【解决方案2】:

    关于您的最后一个问题,请查看来自http://camel.apache.org/aggregator2.html 的“使用 POJO 作为 AggregationStrategy”/“不同的主体类型”小节

    你可以试试:

    .pollEnrich("seda:foo", 1000, AggregationStrategies.beanAllowNull(MyUserAppender.class, "addUsers"))
    
    public static final class MyUserAppender {
    
    public List addUsers(List<String> names, User user) {
        if (names == null) {
            names = new ArrayList();
        }
        names.add(user.getName());
        return names;
    }
    

    【讨论】:

    • 看起来像是新添加的功能。绝对想试试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-20
    • 1970-01-01
    相关资源
    最近更新 更多