Mule ESB:JMS选择器表达式不工作

Mule ESB:JMS选择器表达式不工作,mule,mule-studio,Mule,Mule Studio,我有一个实现pub-sub模型的Mule集成。发布者将消息发布到主题,订阅者配置为接收来自此主题的消息。仅当名为“ENTITY_TYPE”的自定义属性具有以下值之一时,我才希望此订阅服务器接收消息:“accounts”、“contacts”或“cases”。不幸的是,这不起作用(我的意思是订阅者根本没有收到消息)。以下是代码片段: 出版商: <jms:inbound-endpoint connector-ref="Active_MQ_Subscriber" doc:name="JMS"

我有一个实现pub-sub模型的Mule集成。发布者将消息发布到主题,订阅者配置为接收来自此主题的消息。仅当名为“ENTITY_TYPE”的自定义属性具有以下值之一时,我才希望此订阅服务器接收消息:“accounts”、“contacts”或“cases”。不幸的是,这不起作用(我的意思是订阅者根本没有收到消息)。以下是代码片段:

出版商:

<jms:inbound-endpoint  connector-ref="Active_MQ_Subscriber" doc:name="JMS" tracking:enable-default-events="true" topic="${activemq.sfdc.topicname}">
        <jms:selector expression="ENTITY_TYPE='accounts' OR ENTITY_TYPE='contacts' OR ENTITY_TYPE='cases'" />
</jms:inbound-endpoint>
<logger message="$$$: Entity Type = #[message.inboundProperties['ENTITY_TYPE']]" level="INFO" doc:name="Logger"/>
账户流量:

<set-property propertyName="ENTITY_TYPE" value="accounts" doc:name="Set Entity Type"/>
<jms:outbound-endpoint  connector-ref="Active_MQ_Publisher" doc:name="Publish Accounts" topic="${activemq.sfdc.topicname}" tracking:enable-default-events="true"/>
以下是环境署的详情:

Mule单机版:3.6.2(企业版) 操作系统:分操作系统7 消息代理:活动MQ 5.11.1 Mule和活动MQ的JVM:1.7.0.75

我当然需要设置过滤器,并且只接收消息属性设置为前面定义的值之一(帐户、联系人、案例)的消息。知道JMS选择器为什么不工作吗

编辑:我尝试了另一种在发布服务器中设置实体类型的方法,如下所示,但同样无效

<jms:outbound-endpoint  connector-ref="Active_MQ_Publisher" doc:name="Publish Accounts" topic="${activemq.sfdc.topicname}" tracking:enable-default-events="true">
        <message-properties-transformer doc:name="Message Properties" scope="outbound">
            <add-message-property key="ENTITY_TYPE" value="accounts" />
        </message-properties-transformer>
</jms:outbound-endpoint>


查看日志行,我看到
Entity Type=sfdc.locationheader
,它不在选择器的可接受值列表中。因此,选择器似乎工作正常,但实体类型的设置由于任何原因都会失败。此外,如果将此
实体类型='accounts'或实体类型='contacts'或实体类型='cases'
简化为
实体类型IN('accounts','contacts','cases')
@DavidDossot-在我的项目中,我将其作为'sfdc.locationheader',但是,当我发布这条消息时,我将其重命名为“accounts”,以便简化它,但忘了更新日志行。简短的故事是,在这个项目中,它的名称是正确的。谢谢,在这种情况下,我不知道它为什么不工作:(我不明白这一点,但它重新开始工作,没有任何改变,当我重新启动我的工作站(它没有重新启动几个星期)。查看日志行,我看到
Entity Type=sfdc.locationheader
,它不在选择器中可接受的值列表中。因此,选择器似乎工作正常,但实体类型的设置由于任何原因都失败。此外,FTR this
Entity\u Type='accounts'或Entity\u Type='contacts'或Entity\u Type='cases'
也可以简化确认为
实体\输入('accounts'、'contacts'、'cases')
@DavidDossot-在我的项目中,我确实将其命名为“sfdc.locationheader”,但当我发布此消息时,我将其重命名为“accounts”,以便简化它,但忘记更新日志行。简短的故事是,在项目中,它的名称正确。谢谢,在这种情况下,我不知道它为什么不起作用:(我不明白这一点,但当我重新启动我的工作站时,它重新开始按设计工作,没有任何更改(有好几个星期没有重新启动)。查看日志行,我看到
Entity Type=sfdc.locationheader
,它不在选择器中可接受的值列表中。因此,选择器似乎工作正常,但实体类型的设置由于任何原因都失败。此外,FTR this
Entity\u Type='accounts'或Entity\u Type='contacts'或Entity\u Type='cases'
也可以简化确认为
实体\输入('accounts'、'contacts'、'cases')
@DavidDossot-在我的项目中,我确实将其命名为“sfdc.locationheader”,但当我发布此消息时,我将其重命名为“accounts”,以便简化它,但忘记更新日志行。简短的故事是,在项目中,它的名称正确。谢谢,在这种情况下,我不知道它为什么不起作用:(我不明白这一点,但当我重新启动我的工作站时,它重新开始按设计工作,没有任何更改(有好几个星期没有重新启动)。
<jms:inbound-endpoint  connector-ref="Active_MQ_Subscriber" doc:name="JMS" tracking:enable-default-events="true" topic="${activemq.sfdc.topicname}">
        <jms:selector expression="ENTITY_TYPE='accounts' OR ENTITY_TYPE='contacts' OR ENTITY_TYPE='cases'" />
</jms:inbound-endpoint>
<logger message="$$$: Entity Type = #[message.inboundProperties['ENTITY_TYPE']]" level="INFO" doc:name="Logger"/>
2015-06-18 15:58:19,574 INFO o.m.a.p.LoggerMessageProcessor [[sfdcjob].AccountsContactsCasesSubscriberFlow.stage1.02] $$$: Entity Type = sfdc.locationheader
<jms:outbound-endpoint  connector-ref="Active_MQ_Publisher" doc:name="Publish Accounts" topic="${activemq.sfdc.topicname}" tracking:enable-default-events="true">
        <message-properties-transformer doc:name="Message Properties" scope="outbound">
            <add-message-property key="ENTITY_TYPE" value="accounts" />
        </message-properties-transformer>
</jms:outbound-endpoint>