Apache camel组合消息处理器

时间:2015-12-20 15:12:49

标签: java apache-camel

我在我的应用程序中使用Apache Camel。我正在尝试使用Composed Message Processor。我有交换,其主体包含一些要点击的URL和使用split(body(),MyAggregationStrategy()),我试图从URL获取数据并使用聚合策略想要组合每个数据。但是我遇到了问题。如果正文的第一行有一些无效的网址,那么聚合工作正常,但它没有移动到下一个处理器,如果无效的网址是除了第一行以外的其他任何地方,它工作正常。 请帮忙, 以下是参考代码

onException(HttpOperationFailedException.class).handled(true)
            .retryAttemptedLogLevel(LoggingLevel.DEBUG)
            .maximumRedeliveries(5).redeliveryDelay(3000)
            .process(new HttpExceptionProcessor(exceptions));

from("jms:queue:supplier")
            .process(
                    new RequestParserProcessor(payloadDetailsMap,
                            metaDataDetailsPOJO, routesEndpointNamePOJO))
            .choice().when(new AggregateStrategy(metaDataDetailsPOJO))
            .to("direct:aggregate").otherwise().to("direct:single");

    from("direct:aggregate").process(new SplitBodyProcessor())
            .split(body(), new AggregatePayload(aggregatePayload))
            .to("direct:aggregatepayloadData").end()
            .to("direct:payloadDataAggregated").end();

    from("direct:aggregatepayloadData").process(basicProcessor)
            .recipientList(header(ApplicationConstants.URL));

    from("direct:payloadDataAggregated")
            .process(
                    new AggregateJsonGenerator(aggregatePayload,
                            payloadDetailsMap, metaDataDetailsPOJO)).

在这段代码中,如果首次点击时出现一些无效的网址,则永远不会调用AggregateJsonProcessor。

0 个答案:

没有答案