ActiveMQ的JMS使用
Context ctx;
ConnectionFactory factory;
Connection connection = null;
Session session = null;
MessageProducer producer = null;
Destination destination;
Message msg;
try {
ctx = new InitialContext(); //初始化,加载jndi配置文件
factory = (ConnectionFactory) ctx.lookup("connectionFactory"); //获取链接工厂
connection = factory.createConnection(); //创建连接
connection.start();
session = connection.createSession(Boolean.FALSE, Session.AUTO_ACKNOWLEDGE);
destination = session.createQueue("TEST.QUEUE");
producer = session.createProducer(destination);
msg = session.createTextMessage("test messages");
System.out.println("sending message");
producer.send(msg); //发送消息
} catch (NamingException | JMSException e) {
e.printStackTrace();
} finally { //关闭连接
try {
if (producer != null) {
producer.close();
}
} catch (JMSException e) {
e.printStackTrace();
}
try {
if (session != null) {
session.close();
}
} catch (JMSException e) {
e.printStackTrace();
}
try {
if (connection != null) {
connection.close();
}
} catch (JMSException e) {
e.printStackTrace();
}
}
jndi.properties:
java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory
java.naming.provider.url=tcp://localhost:61616
connectionFactoryNames = connectionFactory