我们正在尝试使用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获取它。
答案 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));
}
}