簡體   English   中英

駱駝-使用通配符時解析ActiveMQ主題名稱

[英]Camel - Resolving ActiveMQ topic name when using wildcards

當我從基於通配符的主題中讀取內容時,有一種情況:

    <route id="ReadMQ">
        <from uri="jmsep://topic:sys/*/test/request" />

但是我需要基於原始輸入主題名稱重新路由響應,例如某人發布在sys/5/test/request ,我應該在sys/5/test/response上發送響應,以便我有兩個不同的選擇請求和響應的不同主題。 如您所見,我正在使用spring DSL來配置路由,但不確定如何動態配置<to uri=...部分。 如果您有任何線索,請告訴我。 謝謝!

我也在努力尋找類似的東西,並使用simple使其工作。

請注意, jmsep://似乎不正確。 至少您應該像jmsep:這樣刪除斜線。 至少應定義jmsep 無論如何,在下面的示例中,我假定您正在使用jms和主題。 如果不是這種情況,則該示例將不起作用。 同樣, someWheresomeWhereElse應該更改為正確的。

無論如何,到了重點。 首先,讓我們檢查基本路線是否適用於日志記錄:

<route id="ReadMQ">
    <from uri="someWhere:topic:sys/*/test/request" />
    <log loggingLevel="INFO" message="Received message with topic: ${header.JMSDestination.topicName}"/>
</route>

sys/5/test/request發送一條消息,您應該能夠在${ACTIVEMQ_DIR}/data/activemq.log一個條目,如下所示: Received message with topic: sys/5/test/request

從這里開始,您應該選擇適合您需求的企業集成模式

也許您可以擺脫以下條件,但我還沒有對其進行測試:

<route id="ReadMQ">
    <from uri="someWhere:topic:sys/*/test/request" />
    <to uri="someWhereElse:topic:${header.JMSDestination.topicName.replace("request", "response")}"/>
</route>

這再次使用簡單,但是您可以從camel.apache.org/languages.html中選擇另一種語言。

希望這會有所幫助(盡管我懷疑它會起作用)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM