我在我的应用程序中使用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)).
在这个代码中,如果首次点击时出现一些无效的url,则永远不会调用AggregateJsonProcessor .
1 回答
您可能需要在OnException代码中设置continue(true) . 看这里:http://camel.apache.org/exception-clause.html