Ho un componente che invia messaggi a una coda per essere gestito da un altro sistema. Dovrebbe anche pubblicare un argomento sugli stati dei lavori ogni tanto. Posso usare lo stesso JmsTemplate usato per inviare a una coda E per pubblicare su un argomento?Come si pubblica un argomento JMS con Spring JMS?
Ho creato un nuovo argomento in ActiveMQ, tranne che quando invio un messaggio da JmsTemplate, una nuova coda con il nome dell'argomento viene creata con il messaggio inviato (invece di inviare i dati all'argomento attuale), cosa sono io stai sbagliando qui?
qui è il mio config:
<bean id="connectionFactory" class="org.springframework.jms.connection.CachingConnectionFactory">
<constructor-arg ref="amqConnectionFactory" />
<property name="exceptionListener" ref="jmsExceptionListener" />
<property name="sessionCacheSize" value="100" />
</bean>
<!-- JmsTemplate Definition -->
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate">
<constructor-arg ref="connectionFactory" />
</bean>
<bean id="messageFacade" class="org.foo.MessageFacadeJms">
<property name="jmsTemplate" ref="jmsTemplate" />
</bean>
MessageFacadeJms è la classe che uso per inviare un messaggio di coda (e funziona), posso anche appena usato che a pubblicare un argomento?
Posso usare questo per fare entrambe le cose coda di invio e argomento pubblicazione ?:
jmsTemplate.convertAndSend("TOPIC_NAME" /* or queue name */, message);
ha funzionato perfettamente per me. Se aggiungi @Component a DestinationResolver, non hai nemmeno bisogno di impostarlo su JmsTemplate – danielnovy
@danielnovy se hai trovato la risposta utile, un voto in su sarebbe apprezzato :) –