我有一个多层应用程序,其中jms消息从JmsTemplate(Spring)发送到WMB Flow。 在jms消息中,我可以设置MQMD头,以便设置在MQQueue上侦听的WMB流所需的元信息。
我还应该做些什么,这对我造成的问题是在JMS消息中的 MQRFH2 usr 文件夹中设置自定义属性/标头。我想在那里设置一个名为MYKEY的键,其中包含一个字符串值。
我在jms消息中做的是:
message.setStringProperty(WMQConstants.JMS_IBM_MQMD_FORMAT," MQRFH2"); message.setStringProperty(" MQRFH2.usr.MYKEY"," testvalue");
但我收到了错误:
JMSCC0049:属性名称' MQRFH2.usr.MYKEY'不是有效的 Java(tm)标识符。嵌套异常是 com.ibm.msg.client.jms.DetailedMessageFormatException:JMSCC0049:The 属性名称' MQRFH2.usr.MYKEY'不是有效的Java(tm)标识符
有谁知道如何将名为MYKEY的MQRFH2 usr客户属性设置为usr文件夹中的jms消息到MQRFH2?
答案 0 :(得分:0)
您没有在'jms'文件夹中设置我们自己的属性,而是将它们设置在'usr'文件夹中。
rfh2.setFieldValue("usr", "SomeNum", 123);
rfh2.setFieldValue("usr", "SomeText", "TEST");
有关在非JMS Java应用程序中创建A JMS(MQRFH2)消息的完整示例,请参见此处:http://www.capitalware.com/rl_blog/?p=4823
答案 1 :(得分:0)
实际上你只需要这样做:
message.setStringProperty("MYKEY", "testvalue");
此类调用将强制使用“MQRFH2”格式并在“usr”文件夹中创建属性“MYKEY”。
您收到的错误只表明属性名称必须遵循java标识符命名规则,即不允许使用点。