ペイロードは、グローバルアウトバウンドキューjms:// orders-queueにルーティングされません。このフローではコメントアウトされています。しかし、flow-ref = process-ordersを使用すると、メッセージはprocess-ordersフローにディスパッチされます。なぜVMを使ったディスパッチはうまくいかないのですか?VMエンドポイントが呼び出されない
<vm:endpoint name="orders-queue" path="email.orders.in" exchange- pattern="one-way" doc:name="VM"/>
<vm:endpoint name="events-queue" path="email.orders.in" exchange-pattern="one-way" doc:name="VM"/>
<flow name="order-flow" processingStrategy="synchronous">
<vm:inbound-endpoint exchange-pattern="one-way" path="order-process.queue1" doc:name="VM" />
<!--<vm:outbound-endpoint exchange-pattern="one-way" ref="email.orders.in" doc:name="VM"/>-->
<flow-ref name="process-orders" />
<catch-exception-strategy doc:name="Processing Exception">
<logger
message="Error during flow - #[message] :: ExceptionSummary::= #[exception.summaryMessage]"
level="ERROR" doc:name="Logger" />
</catch-exception-strategy>
</flow>
<flow name="process-orders" processingStrategy="synchronous">
<vm:inbound-endpoint exchange-pattern="one-way" ref="email.orders.in" doc:name="VM"/>
<custom-transformer class="com.sw.CustomTransformer" doc:name="Java"/>
<logger message="Received Order : #[payload]" level="DEBUG" doc:name="Logger"/>
<foreach collection="#[message.payload]" doc:name="For Each"
rootMessageVariableName="Original">
<flow-ref name="process.order" doc:name="Flow Reference"/>
</foreach>
</flow>
<sub-flow name="process.order">
<processor-chain doc:name="Processor Chain" name="Event_Process_Queueing">
<jms:outbound-endpoint queue="per.order.queue"
connector-ref="jmsConnector" doc:name="JMS - Send to Processing Queue"/>
<test:component/>
</processor-chain>
</sub-flow>
の名前で上記のように \t \t <! - この問題は、 - > –
BreenDeen
ref="events-queue"
あるべきref="email.orders.in"
を参照していますフローをコピーする間違い。私は中央の部分を見逃した。サブフローには発信エンドポイントしかありません。更新された回答を確認してください –
フローは両方ともあなたが指摘したように、event.queueではなく、email.orders.inという名前のグローバルなVMエンドポイント。主な流れはemail.orders.inを参照しており、参照されたflow process-ordersにはemail.orders.inを参照するインバウンドVMエンドポイントがあることに注意してください – BreenDeen