Apache Camel .when()语句只有一半时间有效

时间:2017-08-28 15:44:31

标签: java apache apache-camel amq

我有一个带有多个.when()个案的.choice()语句。但是,我每次上传MsgFmtVerNr = 2时都会上传相同的文件,有时它会转到其他地方,有时它会通过.when()。xpath(“/ UpsBas / MsgHdr / MsgFmtVerNr ='2'”)。我不知道为什么这个陈述只有一半时间工作。有什么理由可以直接跳到.otherwise()语句吗?感谢先进的帮助。

 .choice()
                .when(body().startsWith(constant("A")))
                    .setHeader(MsgHdr.EVENT_CODE, simple(ErrorCodesLocal.UNSOLICITEDMSG_GIC_BSIS))
                    .beanRef("fromGICRoute", "setMessageHeadersForUnsolicitedMessage(*)")
                    .beanRef("logging", "debug(*, 'Messsage from " + FromGicSourceQueue + " is a unsolicited message')")
                    .multicast().parallelProcessing()
                        .to("direct:unsolicitedMessageToBoss", "direct:unsolicitedMessageToCmods", "direct:unsolicitedMessageToIsps")
                    .endChoice()
                .when(body().contains("<RtgPfl"))
                    .to(RATING_PROFILE_DESTINATION_QUEUE)
                .when().xpath("/UpsBas/MsgHdr/MsgFmtVerNr = '2'")//body().contains("<MsgFmtVerNr>2<"))
                    .to("direct:cv2")
                .otherwise()
                    .to("direct:commercialInvoice")

1 个答案:

答案 0 :(得分:0)

我发现你的问题遇到了类似的问题。我有两个捆绑链接到我的服务器上的同一个队列,所以一个文件上传,正确捆绑,而其他捆绑将转到不正确的捆绑。