我怀疑是否可以解析JMS目标的bean引用以配置JMS适配器。
我在Spring上配置了以下几个目标:
<jee:jndi-lookup id="BeanID" jndi-name="jms/QUEUE" lazy-init="false"/>
然后我在消息标题上添加一个值,其值为:
@ServiceActivator
public Message<?> sendToJms(Message<?> messageInput){
String queueName = solveQueueName(refToSolveBeanID);
return MessageBuilder.withPayload(messageInput.getPayLoad()).setHeader("beanIdHeaderRef, queueName ).builder();
}
现在我的问题是如何构造表达式来解决Spring Context上的bean引用,以便进行以下配置工作。
<int:chain input-channel="jmsChannel">
<jms:outbound-channel-adapter
connection-factory="solicitacaoConnFactory" destination-expression="headers.beanIdHeaderRef">
</jms:outbound-channel-adapter>
</int:chain>
您注意到使用 jndi-lookup 配置了JMS目标 我尝试了一些变化,但都失败了。我认为必须将BeanFactory传递给头部值,但不知道如何创建表达式,是否有人知道表达式应该是什么样的?
的问候。
答案 0 :(得分:0)
查看您的代码,我不明白有理由从SpEL访问BeanFactory
。您只需将refToSolveBeanID
解析为目标Destination
,然后将该对象直接放入headers
即可。
你的SpEL会是一样的。