javax.jms.TextMessage-getStringProperty()返回空值

javax.jms.TextMessage-getStringProperty()返回空值,java,events,jms,message,tibco,Java,Events,Jms,Message,Tibco,我正在侦听一个队列,当消息发布到队列时,我的侦听器类将侦听该消息,并且必须对其进行处理 侦听器配置良好,我能够接收消息。但是当我试图获取其中一个属性的值时,它返回null,即使该属性对它有值 请参阅所附代码和我的处理逻辑代码 <textMessages> <textMessage timestamp="1410889863339"> <property name="evnt_code" value="ID" /> <property na

我正在侦听一个队列,当消息发布到队列时,我的侦听器类将侦听该消息,并且必须对其进行处理

侦听器配置良好,我能够接收消息。但是当我试图获取其中一个属性的值时,它返回null,即使该属性对它有值

请参阅所附代码和我的处理逻辑代码

<textMessages>
<textMessage timestamp="1410889863339">
    <property name="evnt_code" value="ID" />
    <property name="prev_cmdy_abrv" value="APOISN" />
    <text><![CDATA[<?xml version="1.0" encoding="UTF-8" standalone="no" ?><ceo_eqmt_msg version="1.1"><eqmt eqmt_nbr="902721" eqmt_init="UTLX" ceo_eqmt_id="56081806"><evnt_dtl><evnt evnt_id="19776586731" evnt_code="ID" stop_code="CU" in_out_stop_ind="O" evnt_dt="20140916124600" le_code="L" wb_nbr="161734" wb_date="20140911" evnt_stn_id="8578" evnt_crc7="B 649" evnt_tz="0" evnt_carr_abrv="CN" yard_bloc_id="CNGI" tcs_csn="1102243807" last_uptd_dt="20140916125101" upd_task_user_id="DAEI999" upd_task_id="=WO" upd_task_dt="20140916125100" match_plnd_ev_id="26624105732" phys_le_code="L" upd_src_sys_tla_code="TCS" upd_src_sys_proc_id="Q133703AEI" evnt_stop_desc_id="2059"/></evnt_dtl></eqmt></ceo_eqmt_msg>]]></text>
</textMessage>
我得到的值为null。即使“evnt_code”属性存在于标记和文本消息中


非常感谢您在这方面的帮助。提前感谢。

邮件“已发布的EMS上的有效负载”不是正确的XML。 您是否可以使用Gems发布您在EMS队列或主题中看到的实际消息负载


如果消息不正确,即消息的有效负载不正确,解析器将永远找不到子元素,在上述情况下,属性列表是textMessage的子项,但不清楚此xml文档的根是什么。

您所要做的就是在Websphere MQ server上的队列属性中将目标客户机设置为JMS

public void onMessage(Message message) {

    try {       
        TextMessage textMessage         =   (TextMessage) message;
        String stringProperty = textMessage.getStringProperty("evnt_code");
        } catch (JMSException ex) {
        LOGGER.error("Error getting property: " + propertyName + " error: " + ex.getMessage());
    }
}