Я хочу назначить id для jms: listener-container bean, но, к сожалению, он не имеет свойства id. Например, это не работаетОпределить ListenerContainer без пространства имен jms весной jms
<jms:listener-container id="jmsListenerContainer" concurrency="${jms.consumer.concurrency}" >
<jms:listener id="queueHandler" destination="${jms.queue.name}" ref="queueListener" />
</jms:listener-container>
Чтобы противостоять этому, я пытаюсь определить контейнер без имен, используя определение ванильный, например, так:
<bean id="jmsListenerContainer" class="org.springframework.jms.listener.DefaultMessageListenerContainer"
p:concurrency="${jms.consumer.concurrency}" p:connection-factory="jmsConnectionFactory"
p:messageListener-ref="jmsMessageListener">
</bean>
Для этого, чтобы работать один нуждается фактический класс реализации MessageListener используется контейнер, как определение этого отдельно не работает
<jms:listener id="jmsMessageListener" destination="${jms.queue.name}" ref="queueListener" />
Это бросает The matching wildcard is strict, but no declaration can be found for element 'jms:listener'.
Из документации AbstractMessageListenerContainer: By default, only a standard JMS MessageListener object or a Spring SessionAwareMessageListener object will be accepted.
Это совершенно неубедительны, так кто-нибудь знает, как это можно сделать?
Это правильно. –