【发布时间】:2016-07-15 09:37:11
【问题描述】:
我有一个message-driven-channel-adapter,它正在侦听一个应用程序正在向其发布以下格式的 json 消息的 jms 队列“inputqueue”。
{
"name": "Praveep",
"action": "Drink",
"age": "32",
"userid": "pk",
"details": [{
"state": "karnataka",
"country": "India",
}]
}
在我的applicationContext 文件中,我定义了一个router,它基于操作将消息指向适当的队列。
<int:channel id="processEmpChannel">
<int:queue />
</int:channel>
<int:channel id="drink">
<int:queue />
</int:channel>
<int:channel id="eat">
<int:queue />
</int:channel>
<int:channel id="sleep">
<int:queue />
</int:channel>
<int:router input-channel="processEmpChannel" expression="$.action">
<int:mapping value="drink" channel="drink" />
<int:mapping value="eat" channel="eat" />
<int:mapping value="sleep" channel="sleep" />
</int:router>
<int:service-activator input-channel="drink"
ref="springExample" method="handleDrink">
<int:poller ref="poller"></int:poller>
</int:service-activator>
<int:service-activator input-channel="eat"
ref="springExample" method="handleEat">
<int:poller ref="poller"></int:poller>
</int:service-activator>
<int:service-activator input-channel="sleep"
ref="springExample" method="handleSleep">
<int:poller ref="poller"></int:poller>
</int:service-activator>
在我的 Class 文件中,我为公共方法中的每个操作定义了方法。当我运行 java 程序时,我收到以下错误。有人可以告诉我spel 表达式中哪里出错了。
Property or field '$' cannot be found on object of type 'org.springframework.messaging.support.GenericMessage' - maybe not public?
【问题讨论】: