2017-08-28 5 views
0

複数の.when()ケースを持つ.choice()ステートメントがあります。しかし、私はMsgFmtVerNr = 2となるたびに同じファイルをアップロードします。それ以外の場合は時々.when().xpath( "/ UpsBas/MsgHdr/MsgFmtVerNr = '2'")を経由します。私はなぜこの声明が時間の半分だけ働いているのか分かりません。 .otherwise()ステートメントに直接スキップする何らかの理由はありますか?高度なヘルプに感謝します。Apache Camel .when()ステートメント時間の半分しか動作しません

.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") 

答えて

0

私は同じ問題を抱えている人に問題があることを発見しました。サーバ上の同じキューに2つのバンドルがリンクされていたので、1つのファイルのアップロードが正しく行われ、他のバンドルは正しくないバンドルになりました。

関連する問題