I\'m trying to refactor some legacy code to use Spring to handle the jms connections to a mainframe service. I need to connect create a temporary topic for the mainframe ser
I was able to create a queue dynamically using the following code in a Spring Boot app:
In Application.java
@Bean
public ConnectionFactory jmsFactory()
{
ActiveMQConnectionFactory amq = new ActiveMQConnectionFactory()
amq.setBrokerURL("tcp://somehost");
return amq;
}
@Bean
public JmsTemplate myJmsTemplate()
{
JmsTemplate jmsTemplate = new JmsTemplate(jmsFactory());
jmsTemplate.setPubSubDomain(false);
return jmsTemplate;
}
Then in another class which creates the queue dynamically:
@Component
public class Foo {
@Autowired
private ConnectionFactory jmsFactory;
public void someMethod () {
DefaultMessageListenerContainer messageListener = new DefaultMessageListenerContainer();
messageListener.setDestinationName("queueName");
messageListener.setConnectionFactory(jmsFactory);
messageListener.setMessageListener(new Consumer("queueName"));
messageListener.setPubSubDomain(false);
messageListener.initialize();
messageListener.start();
}
}