Apache Camel .when() Оператор работает только половину времени

У меня есть оператор.choice () с несколькими случаями.when (). Тем не менее, я загружаю один и тот же файл каждый раз, когда 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 ответ

Я нашел проблему для тех из вас, кто сталкивался с подобными проблемами. У меня было два пакета, связанных с одной и той же очередью на моем сервере, поэтому загрузка одного файла была бы правильной, а другая - неправильной.

Другие вопросы по тегам