【发布时间】:2016-05-23 20:52:05
【问题描述】:
我有一个从 MQ 队列读取消息的 Java JMS 应用程序。我的应用程序可以成功读取消息并提取 JMS 标头(例如 JMSDeliveryMode、JMSPriority 等)和消息正文,但我无法访问消息的 <usr> 文件夹部分。
我正在使用 RFHutil 将消息放入队列中。在 RFH 选项卡下,我勾选了“包括 RFH V2 标头”和“usr”,在 usr 选项卡下,我有 test1=1。如果我使用 MQExplorer 浏览队列,我可以在消息中看到 <usr><test1>1</test1></usr>,所以我认为我正确设置了 usr 文件夹。
我已经输出了整个 message.getPropertyNames() 枚举(如主题 JMS passing entire Application data <usr> block 中所述,但我的 usr 字段不在此处。我的消息正文也不包含我的 usr 字段。
我还阅读了 MQ v7 信息中心,您需要将 WMQ_MESSAGE_BODY 设置为 WMQ_MESSAGE_BODY_MQ,但我使用的是 v6MQ,不知道这是否相关/如何设置此值。
如何使用 JMS API 访问 usr 文件夹?
任何帮助/指针将不胜感激,因为我对 JMS 编程相当陌生。
【问题讨论】:
-
如果接收者知道用户属性的名称,可以通过getStringProperty()等方法获取值:docs.oracle.com/javaee/6/api/javax/jms/…