我是ActiveMQ的新手。我使用本地计算机上的默认设置在Windows上运行ActiveMQ服务器。我试图创建一个简单的队列来测试发送消息。
public class Foo {
public static void main(String[] args) {
new Foo().send();
}
public void send(){
try {
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("vm://localhost:61616");
Connection connection = connectionFactory.createConnection();
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createQueue("TESTQUEUE");
MessageProducer producer = session.createProducer(destination);
producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
TextMessage message = session.createTextMessage("MESSAGE123");
producer.send(message);
session.close();
connection.close();
} catch (JMSException ex) {
Logger.getLogger(Foo.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
当我尝试通过登录ActiveMQ管理页面并检查队列来检查它时,此代码似乎没有做任何事情。 (本地主机:8161 /管理/ queues.jsp) 队列未创建。然后尝试从管理页面手动创建队列,即使队列已创建,也不会将消息发送到队列。
当我使用命令activemq producer
和activemq consumer
测试服务器时,会创建队列并将消息传递到队列并从队列中读取。所以我确定服务器没有问题。
当我运行代码时,这是终端输出
WARN | Memory Usage for the Broker (1024mb) is more than the maximum available for the JVM: 887 mb - resetting to 70% of maximum available: 621 mb
INFO | Using Persistence Adapter: KahaDBPersistenceAdapter[C:\Users\Prashan\Desktop\Test\activemq-data\localhost\KahaDB]
INFO | JMX consoles can connect to service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi
INFO | KahaDB is version 6
INFO | Recovering from the journal @1:3712
INFO | Recovery replayed 1 operations from the journal in 0.01 seconds.
INFO | PListStore:[C:\Users\Prashan\Desktop\Test\activemq-data\localhost\tmp_storage] started
INFO | Apache ActiveMQ 5.13.2 (localhost, ID:CAPSULE-5179-1461559222267-0:1) is starting
INFO | Apache ActiveMQ 5.13.2 (localhost, ID:CAPSULE-5179-1461559222267-0:1) started
INFO | For help or more information please see: http://activemq.apache.org
WARN | Store limit is 102400 mb (current store usage is 0 mb). The data directory: C:\Users\Prashan\Desktop\Test\activemq-data\localhost\KahaDB only has 6947 mb of usable space. - resetting to maximum available disk space: 6947 mb
WARN | Temporary Store limit is 51200 mb (current store usage is 0 mb). The data directory: C:\Users\Prashan\Desktop\Test\activemq-data\localhost\tmp_storage only has 6947 mb of usable space. - resetting to maximum available disk space: 6947 mb
INFO | Connector vm://localhost started
INFO | Connector vm://localhost stopped
INFO | Apache ActiveMQ 5.13.2 (localhost, ID:CAPSULE-5179-1461559222267-0:1) is shutting down
INFO | PListStore:[C:\Users\Prashan\Desktop\Test\activemq-data\localhost\tmp_storage] stopped
INFO | Stopping async queue tasks
INFO | Stopping async topic tasks
INFO | Stopped KahaDB
INFO | Apache ActiveMQ 5.13.2 (localhost, ID:CAPSULE-5179-1461559222267-0:1) uptime 1.918 seconds
INFO | Apache ActiveMQ 5.13.2 (localhost, ID:CAPSULE-5179-1461559222267-0:1) is shutdown
答案 0 :(得分:3)
您实际上正在创建一个嵌入式代理,并在那里发送消息。您应该通过以下方式连接到本地计算机代理:tcp://localhost:61616"
而不是vm://...
。