java - 以编程方式启动 ActiveMQ 而不是作为服务

标签 java activemq broker

我正在使用 ActiveMQ 并为某些消息创建生产者和消费者。

这样我就创建了连接,并创建了目的地:

ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory(username,password,"tcp://localhost:61616");
Connection connection = factory.createConnection();
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createQueue("MyQueue");

通过这种方式我创建了生产者并发送消息:

Producer producer = session.createProducer(destination);
producer.send(msgToSend);

我创建了消费者并为其设置了一个监听器(实现 MessageListener 接口(interface)的类)

Consumer consumer = session.createConsumer(destination);
consumer.setMessageListener(this);

消费者连接到目的地,它正在收听消息。 当它从队列“MyQueue”中获取一些消息时,就会触发 MessageListener 的 onMessage() 方法并对消息执行任何我想做的事情。

我的代码可以工作,并且我能够生成和使用消息。生产者在服务器上,消费者在客户端(一个单独的项目)。

为了让它工作,我从 here 安装了 apache-activemq-5.14.4-bin.zip。 .然后我将依赖项放在 pom.xml 中:

<dependency>
    <groupId>org.apache.activemq</groupId>
    <artifactId>activemq-all</artifactId>
    <version>5.14.0</version>
</dependency> 

那么,现在安装的ActiveMQ就是一个随电脑启动的服务。我不想将它安装为服务,而是在 java 中以编程方式启动和停止它。例如,按下 Start 按钮并执行代码以启动它,然后按下 Stop 按钮将其停止。

我能否以编程方式实现而不是将 ActiveMQ 安装为服务?

最佳答案

请按照链接以编程方式启动和停止代理 http://activemq.apache.org/how-do-i-embed-a-broker-inside-a-connection.html

关于java - 以编程方式启动 ActiveMQ 而不是作为服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43063469/

相关文章:

python - 应该如何实现对 twisted.pb 中备用凭证类型的支持?

java - 在 java 中为 Android 应用程序解析 html

java - Android HTTP 请求在模拟器中工作但不在磨损设备上

asp.net - SqlCacheDependency在 View 和过程上

java - 如何获取 Kafka 中代理的连接字符串

spring - 将 RedeliveryPolicy 注入(inject) Spring 启动 ActiveMQ

Java对象创建和内存大小

java - 使用 Java 8 流形成特定列表

java - 配置应用程序登录 ActiveMQ,但 log4j2 失败

java - 如何使用 Apache Camel 在文本文件中搜索字符串