【问题标题】:Creating temporary JMS jms topic in Spring在 Spring 中创建临时 JMS jms 主题
【发布时间】:2015-02-05 01:22:50
【问题描述】:
我正在尝试重构一些遗留代码以使用 Spring 来处理与大型机服务的 jms 连接。我需要为大型机服务回复创建一个临时主题,并在发送消息之前将其设置为消息中的message.setJMSReplyTo(replyTo);。
谁能提供这方面的例子?我在文档中没有找到任何可以让您访问低级 jms 对象(例如 session 或 TopicConnection)以创建临时主题的内容。
【问题讨论】:
标签:
java
spring
jms
jmstemplate
【解决方案2】:
我能够在 Spring Boot 应用程序中使用以下代码动态创建队列:
在 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;
}
然后在另一个动态创建队列的类中:
@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();
}
}