Creating temporary JMS jms topic in Spring

后端 未结 2 1246
傲寒
傲寒 2021-01-14 07:20

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

2条回答
  •  耶瑟儿~
    2021-01-14 08:18

    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();
        }
    }
    

提交回复
热议问题