2016-04-01 7 views
0

Ich versuche, zwei Systeme mit Messaging-Warteschlange (Websphere Mq) zu integrieren. Ich habe Kamel mit Feder für das Routing verwendet. Jetzt muss ich JMSCorrelationId und JMSReplyTo Header in ihnen festlegen.Wie setze ich JMSCorrelationId und JMSReplyTo Header in Kamel Route Frühling DSL

 <route id="Request1"> 
       <from uri="WebMq:queue:inputQ"/> 

       <to uri="bean:mycode"/> 

       <to uri="WebMq:queue:outputQ"/> 

     </route> 
+0

Werfen Sie einen Blick auf http://camel.apache.org/constant.html dafür, wie ein contant Wert zu setzen, http://camel.apache.org/simple.html für einen Wert verändern und anders Verwenden Sie einen Prozessor (eine benutzerdefinierte Klasse, die org.camel.Processor implementiert), um Header in seiner Prozessmethode festzulegen. – fiw

Antwort

0

Es ist nützlich für die Arbeit, die ich machen wollte. Es hilft mir im Anfrage-Antwort-Szenario.

<route id="Request1"> 
      <from uri="WebMq:queue:inputQ?replyTo=queue_name pattern="InOut"/> 

      <to uri="bean:mycode"/> 

      <to uri="WebMq:queue:outputQ"/> 

    </route> 
1

Durch die folgenden in der Mitte platzieren:

<setHeader headerName="JMSCorrelationId"> 
    <constant>myValue</constant> 
</setHeader> 

Sie können mit JMSReplyTo Header das gleiche tun.

+0

Es funktioniert nicht für JMS-Property-Header. Es funktioniert nur für benutzerdefinierte Header. Deshalb stelle ich eine Lösung für die Einstellung von JMS-Kopfzeilen. Bitte führen Sie mich richtig, wenn Sie das Szenario verstehen. – iprashant7

+0

Sieht aus, dass Ihr Problem mit diesem Ticket zusammenhängt: https://issues.apache.org/jira/browse/CAMEL-3102 Welche Version von Camel verwenden Sie? –

+0

Kurz gesagt können Sie versuchen, den JMS-Endpunkt zu WebMq zu ändern: queue: outputQ? PreserveMessageQos = true –