使用柑橘框架工作执行将消息放入Websphere MQ的xml测试用例时,无法为jms消息设置消息ID

时间:2018-04-03 14:18:46

标签: spring ibm-mq citrus-framework

我正在使用柑橘集成框架来执行将消息放入IBM websphere MQ的测试用例。当我发送带有jms消息头的特殊标头时。我能够设置标题中提到的相关ID,但我无法设置messageID。这是我发送的标题

    <send endpoint="QueueEndPoint">
      <message>
      <resource="file:c:\payloads\payload.xml">
      <message>
      <header>
       <element name="Scenario" value="some thing"/>
       <element  name="instanceID" value="some thing"/>
       <element name="citrus_jms_correlationId" value="012345678910111213141516"/>  
<element name="citrus_jms_messageId" value="012345678910111213143121"/>
      </header> 

here is the message id and correlation Id appearing in IBM MQ

2 个答案:

答案 0 :(得分:1)

错误的想法,在MQ中设置MessageId非常糟糕。让MQ设置并控制MessageId。设置CorrelationId是您应该设置的。

屏幕截图显示您将CorrelationId设置为'161514131211109876543212',即Hex ='313631353134313331323131313039383736353433323132'。

答案 1 :(得分:1)

JMS标准规定MessageId不能由应用程序设置:

  

发送消息时,将忽略JMSMessageID。当发送方法   返回它包含提供者指定的值。

尽管可以在MQ JMS类提供的扩展中覆盖它,但它需要additional settings,您需要明确声明要覆盖标准。