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

Spring 使用citrus框架执行将消息放入Websphere MQ的xml测试用例时,无法为jms消息设置消息ID,spring,ibm-mq,citrus-framework,Spring,Ibm Mq,Citrus Framework,我正在使用citrus集成框架来执行将消息放入IBMWebSphereMQ中的测试用例。当我发送带有jms消息头的特殊头时。我可以设置标题中提到的相关ID,但无法设置messageID。这是我要发送的标题 <send endpoint="QueueEndPoint"> <message> <resource="file:c:\payloads\payload.xml"> <message> &

我正在使用citrus集成框架来执行将消息放入IBMWebSphereMQ中的测试用例。当我发送带有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> 


在MQ中设置MessageId是个坏主意。让MQ设置并控制MessageId。设置CorrelationId是您应该设置的


屏幕截图显示您将CorrelationId设置为“16151413121109876543212”,即Hex='3136313531343133313231313039383736353433323132'。

在MQ中设置消息ID是个坏主意。让MQ设置并控制MessageId。设置CorrelationId是您应该设置的


屏幕截图显示您将CorrelationId设置为“16151413121109876543212”,即Hex='3136313531343133313231313039383736353433323132'。

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

发送消息时,JMSMessageID将被忽略。当使用send方法时 返回它包含提供程序指定的值


尽管可以在MQ JMS类提供的扩展中覆盖该项,但它需要明确声明要覆盖该标准的位置。

JMS标准规定,应用程序无法设置MessageId:

发送消息时,JMSMessageID将被忽略。当使用send方法时 返回它包含提供程序指定的值


虽然可以在MQ JMS类提供的扩展中重写该标准,但它需要您明确声明要在何处重写该标准。

请提供并解释实际发生的情况。将消息放入MQ后。相关性id显示在MQ中,但消息id不是我给定的值。我不知道mq是否不接受消息ID值或CItrus是否正在执行某些操作,但我在mq中看到的消息ID是mq生成的默认消息ID。请提供并解释实际发生的情况。将消息放入mq后。相关性id显示在MQ中,但消息id不是我给定的值。我不知道mq是否不接受消息ID值,或者CItrus是否正在执行某些操作,但我在mq中看到的消息ID是由mq生成的默认消息ID。