如何通过Websphere MQ API检索JMS生成器设置的属性?

时间:2017-01-11 15:20:04

标签: java jms ibm-mq spring-jms

我们正在尝试使用Websphere MQ API检索我们在消息中填充的JMS标头。

现在我正在使用mq-all-client jar来建立与queueManagers的连接。

getOptions.options = CMQC.MQGMO_NO_WAIT + CMQC.MQGMO_FAIL_IF_QUIESCING + CMQC.MQGMO_CONVERT;

我尝试通过以下方式检索JMS属性:

MQMessage message = new MQMessage();
queue.get(message, getOptions);
logger.info(message.getStringProperty("My_PROPERTY"));

我收到 null 。 有没有办法通过MQ-allclients jar建立连接并仍然检索消息上的JMS属性集? 我可以通过JMS Consumer检索属性,但我希望通过MQ API获取它。

1 个答案:

答案 0 :(得分:2)

  

logger.info(message.getStringProperty( “My_PROPERTY”));

那么,'特定'的命名属性不存在。不要忘记,属性关键字区分大小写。

为什么不转储邮件的所有命名属性并确切地查看邮件中的哪些?

String propName;
Enumeration<String> props = msg.getPropertyNames("%");
if (props != null)
{
   while (props.hasMoreElements())
   {
      propName = props.nextElement();
      System.out.println("---> propName="+propName+" : " + "value="+msg.getObjectProperty(propName));
   }
}