读书人

ActiveMQ的一个容易示例

发布时间: 2012-06-28 15:20:03 作者: rapoo

ActiveMQ的一个简单示例

最近由于公司项目需要,开始学习JMS,用的是ActiveMQ。由于这方面网上的例子不是很多,而且有的也不完整。于是经过几天的摸索学习,写了一个简单的小例子,现在贴出来与大家分享。
ProducerTool.java用于发送消息:

?

ActiveMQ的一个容易示例package?homework;
ActiveMQ的一个容易示例
ActiveMQ的一个容易示例import?javax.jms.Connection;
ActiveMQ的一个容易示例import?javax.jms.DeliveryMode;
ActiveMQ的一个容易示例import?javax.jms.Destination;
ActiveMQ的一个容易示例import?javax.jms.JMSException;
ActiveMQ的一个容易示例import?javax.jms.MessageProducer;
ActiveMQ的一个容易示例import?javax.jms.Session;
ActiveMQ的一个容易示例import?javax.jms.TextMessage;
ActiveMQ的一个容易示例
ActiveMQ的一个容易示例import?org.apache.activemq.ActiveMQConnection;
ActiveMQ的一个容易示例import?org.apache.activemq.ActiveMQConnectionFactory;
ActiveMQ的一个容易示例
ActiveMQ的一个容易示例ActiveMQ的一个容易示例public?class?ProducerTool?...{
ActiveMQ的一个容易示例
ActiveMQ的一个容易示例?private?String?user?=?ActiveMQConnection.DEFAULT_USER;
ActiveMQ的一个容易示例
ActiveMQ的一个容易示例?private?String?password?=?ActiveMQConnection.DEFAULT_PASSWORD;
ActiveMQ的一个容易示例
ActiveMQ的一个容易示例?private?String?url?=?ActiveMQConnection.DEFAULT_BROKER_URL;
ActiveMQ的一个容易示例
ActiveMQ的一个容易示例?private?String?subject?=?"TOOL.DEFAULT";
ActiveMQ的一个容易示例
ActiveMQ的一个容易示例?private?Destination?destination?=?null;
ActiveMQ的一个容易示例
ActiveMQ的一个容易示例?private?Connection?connection?=?null;
ActiveMQ的一个容易示例
ActiveMQ的一个容易示例?private?Session?session?=?null;
ActiveMQ的一个容易示例
ActiveMQ的一个容易示例?private?MessageProducer?producer?=?null;
ActiveMQ的一个容易示例
ActiveMQ的一个容易示例?//?初始化
ActiveMQ的一个容易示例ActiveMQ的一个容易示例?private?void?initialize()?throws?JMSException,?Exception?...{
ActiveMQ的一个容易示例??ActiveMQConnectionFactory?connectionFactory?=?new?ActiveMQConnectionFactory(
ActiveMQ的一个容易示例????user,?password,?url);
ActiveMQ的一个容易示例??connection?=?connectionFactory.createConnection();
ActiveMQ的一个容易示例??session?=?connection.createSession(false,?Session.AUTO_ACKNOWLEDGE);
ActiveMQ的一个容易示例??destination?=?session.createQueue(subject);
ActiveMQ的一个容易示例??producer?=?session.createProducer(destination);
ActiveMQ的一个容易示例??producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
ActiveMQ的一个容易示例?}
ActiveMQ的一个容易示例
ActiveMQ的一个容易示例?//?发送消息
ActiveMQ的一个容易示例ActiveMQ的一个容易示例?public?void?produceMessage(String?message)?throws?JMSException,?Exception?...{
ActiveMQ的一个容易示例??initialize();
ActiveMQ的一个容易示例??TextMessage?msg?=?session.createTextMessage(message);
ActiveMQ的一个容易示例??connection.start();
ActiveMQ的一个容易示例??System.out.println("Producer:->Sending?message:?"?+?message);
ActiveMQ的一个容易示例??producer.send(msg);
ActiveMQ的一个容易示例??System.out.println("Producer:->Message?sent?complete!");
ActiveMQ的一个容易示例?}
ActiveMQ的一个容易示例
ActiveMQ的一个容易示例?//?关闭连接
ActiveMQ的一个容易示例ActiveMQ的一个容易示例?public?void?close()?throws?JMSException?...{
ActiveMQ的一个容易示例??System.out.println("Producer:->Closing?connection");
ActiveMQ的一个容易示例??if?(producer?!=?null)
ActiveMQ的一个容易示例???producer.close();
ActiveMQ的一个容易示例??if?(session?!=?null)
ActiveMQ的一个容易示例???session.close();
ActiveMQ的一个容易示例??if?(connection?!=?null)
ActiveMQ的一个容易示例???connection.close();
ActiveMQ的一个容易示例?}
ActiveMQ的一个容易示例}
ActiveMQ的一个容易示例
ActiveMQ的一个容易示例

?

ConsumerTool.java用于接受消息,我用的是基于消息监听的机制,需要实现MessageListener接口,这个接口有个onMessage方法,当接受到消息的时候会自动调用这个函数对消息进行处理。ActiveMQ的一个容易示例package?homework;
ActiveMQ的一个容易示例
ActiveMQ的一个容易示例import?javax.jms.Connection;
ActiveMQ的一个容易示例import?javax.jms.Destination;
ActiveMQ的一个容易示例import?javax.jms.JMSException;
ActiveMQ的一个容易示例import?javax.jms.MessageConsumer;
ActiveMQ的一个容易示例import?javax.jms.Session;
ActiveMQ的一个容易示例import?javax.jms.MessageListener;
ActiveMQ的一个容易示例import?javax.jms.Message;
ActiveMQ的一个容易示例import?javax.jms.TextMessage;
ActiveMQ的一个容易示例
ActiveMQ的一个容易示例import?org.apache.activemq.ActiveMQConnection;
ActiveMQ的一个容易示例import?org.apache.activemq.ActiveMQConnectionFactory;
ActiveMQ的一个容易示例
ActiveMQ的一个容易示例ActiveMQ的一个容易示例public?class?ConsumerTool?implements?MessageListener?...{
ActiveMQ的一个容易示例
ActiveMQ的一个容易示例?private?String?user?=?ActiveMQConnection.DEFAULT_USER;
ActiveMQ的一个容易示例
ActiveMQ的一个容易示例?private?String?password?=?ActiveMQConnection.DEFAULT_PASSWORD;
ActiveMQ的一个容易示例
ActiveMQ的一个容易示例?private?String?url?=?ActiveMQConnection.DEFAULT_BROKER_URL;
ActiveMQ的一个容易示例
ActiveMQ的一个容易示例?private?String?subject?=?"TOOL.DEFAULT";
ActiveMQ的一个容易示例
ActiveMQ的一个容易示例?private?Destination?destination?=?null;
ActiveMQ的一个容易示例
ActiveMQ的一个容易示例?private?Connection?connection?=?null;
ActiveMQ的一个容易示例
ActiveMQ的一个容易示例?private?Session?session?=?null;
ActiveMQ的一个容易示例
ActiveMQ的一个容易示例?private?MessageConsumer?consumer?=?null;
ActiveMQ的一个容易示例
ActiveMQ的一个容易示例?//?初始化
ActiveMQ的一个容易示例ActiveMQ的一个容易示例?private?void?initialize()?throws?JMSException,?Exception?...{
ActiveMQ的一个容易示例??ActiveMQConnectionFactory?connectionFactory?=?new?ActiveMQConnectionFactory(
ActiveMQ的一个容易示例????user,?password,?url);
ActiveMQ的一个容易示例??connection?=?connectionFactory.createConnection();
ActiveMQ的一个容易示例??session?=?connection.createSession(false,?Session.AUTO_ACKNOWLEDGE);
ActiveMQ的一个容易示例??destination?=?session.createQueue(subject);
ActiveMQ的一个容易示例??consumer?=?session.createConsumer(destination);
ActiveMQ的一个容易示例??
ActiveMQ的一个容易示例?}
ActiveMQ的一个容易示例
ActiveMQ的一个容易示例?//?消费消息
ActiveMQ的一个容易示例ActiveMQ的一个容易示例?public?void?consumeMessage()?throws?JMSException,?Exception?...{
ActiveMQ的一个容易示例??initialize();
ActiveMQ的一个容易示例??connection.start();
ActiveMQ的一个容易示例??
ActiveMQ的一个容易示例??System.out.println("Consumer:->Begin?listening...");
ActiveMQ的一个容易示例??//?开始监听
ActiveMQ的一个容易示例??consumer.setMessageListener(this);
ActiveMQ的一个容易示例??//?Message?message?=?consumer.receive();
ActiveMQ的一个容易示例?}
ActiveMQ的一个容易示例
ActiveMQ的一个容易示例?//?关闭连接
ActiveMQ的一个容易示例ActiveMQ的一个容易示例?public?void?close()?throws?JMSException?...{
ActiveMQ的一个容易示例??System.out.println("Consumer:->Closing?connection");
ActiveMQ的一个容易示例??if?(consumer?!=?null)
ActiveMQ的一个容易示例???consumer.close();
ActiveMQ的一个容易示例??if?(session?!=?null)
ActiveMQ的一个容易示例???session.close();
ActiveMQ的一个容易示例??if?(connection?!=?null)
ActiveMQ的一个容易示例???connection.close();
ActiveMQ的一个容易示例?}
ActiveMQ的一个容易示例
ActiveMQ的一个容易示例?//?消息处理函数
ActiveMQ的一个容易示例ActiveMQ的一个容易示例?public?void?onMessage(Message?message)?...{
ActiveMQ的一个容易示例ActiveMQ的一个容易示例??try?...{
ActiveMQ的一个容易示例ActiveMQ的一个容易示例???if?(message?instanceof?TextMessage)?...{
ActiveMQ的一个容易示例????TextMessage?txtMsg?=?(TextMessage)?message;
ActiveMQ的一个容易示例????String?msg?=?txtMsg.getText();
ActiveMQ的一个容易示例????System.out.println("Consumer:->Received:?"?+?msg);
ActiveMQ的一个容易示例ActiveMQ的一个容易示例???}?else?...{
ActiveMQ的一个容易示例????System.out.println("Consumer:->Received:?"?+?message);
ActiveMQ的一个容易示例???}
ActiveMQ的一个容易示例ActiveMQ的一个容易示例??}?catch?(JMSException?e)?...{
ActiveMQ的一个容易示例???//?TODO?Auto-generated?catch?block
ActiveMQ的一个容易示例???e.printStackTrace();
ActiveMQ的一个容易示例??}
ActiveMQ的一个容易示例?}
ActiveMQ的一个容易示例}
ActiveMQ的一个容易示例
ActiveMQ的一个容易示例
如果想主动的去接受消息,而不用消息监听的话,把consumer.setMessageListener(this)改为Message message = consumer.receive(),手动去调用MessageConsumer的receive方法即可。

下面是测试类Test.java:

?

ActiveMQ的一个容易示例package?homework;
ActiveMQ的一个容易示例
ActiveMQ的一个容易示例import?javax.jms.JMSException;
ActiveMQ的一个容易示例
ActiveMQ的一个容易示例ActiveMQ的一个容易示例public?class?Test?...{
ActiveMQ的一个容易示例
ActiveMQ的一个容易示例ActiveMQ的一个容易示例?/**?*//**
ActiveMQ的一个容易示例??*?@param?args
ActiveMQ的一个容易示例??*/
ActiveMQ的一个容易示例ActiveMQ的一个容易示例?public?static?void?main(String[]?args)?throws?JMSException,?Exception?...{
ActiveMQ的一个容易示例??//?TODO?Auto-generated?method?stub
ActiveMQ的一个容易示例??ConsumerTool?consumer?=?new?ConsumerTool();
ActiveMQ的一个容易示例??ProducerTool?producer?=?new?ProducerTool();
ActiveMQ的一个容易示例??//?开始监听
ActiveMQ的一个容易示例??consumer.consumeMessage();
ActiveMQ的一个容易示例??
ActiveMQ的一个容易示例??//?延时500毫秒之后发送消息
ActiveMQ的一个容易示例??Thread.sleep(500);
ActiveMQ的一个容易示例??producer.produceMessage("Hello,?world!");
ActiveMQ的一个容易示例??producer.close();
ActiveMQ的一个容易示例??
ActiveMQ的一个容易示例??//?延时500毫秒之后停止接受消息
ActiveMQ的一个容易示例??Thread.sleep(500);
ActiveMQ的一个容易示例??consumer.close();
ActiveMQ的一个容易示例?}
ActiveMQ的一个容易示例}
ActiveMQ的一个容易示例

?

以上就是我学习ActiveMQ之后写的一个简单的例子,希望对你有帮助,如果有什么错误还请指正。?

读书人网 >开源软件

热点推荐