大鳥的學(xué)習(xí)樂園
          路漫漫其修遠(yuǎn)兮,吾將上下而求索
          posts - 26,comments - 27,trackbacks - 0
          1、環(huán)境:
          Windows XP
          apache-activemq-5.2.0-bin.zip
           
          2、安裝
          解壓縮到apache-activemq-5.2.0-bin.zip到一個目錄,比如C:\apache-activemq-5.2.0
           
          3、配置
          配置就在C:\apache-activemq-5.2.0\conf目錄下三個文件
          activemq.xml
          credentials.properties
          log4j.properties
           
          4、啟動ActiveMQ
          運行C:\apache-activemq-5.2.0\bin\activemq.bat
          5、測試
          ActiveMQ默認(rèn)使用的TCP連接端口是61616, 通過查看該端口的信息可以測試ActiveMQ是否成功啟動 netstat -an|find "61616"

          C:\Documents and Settings\Administrator>netstat -an|find "61616"
              TCP        0.0.0.0:61616                    0.0.0.0:0                            LISTENING
          6、監(jiān)控
          ActiveMQ5.0版本默認(rèn)啟動時,啟動了內(nèi)置的jetty服務(wù)器,提供一個demo應(yīng)用和用于監(jiān)控ActiveMQ的admin應(yīng)用。
          admin:http://127.0.0.1:8161/admin/
          demo:http://127.0.0.1:8161/demo/

          下面是ActiveMQ5.2的一個最簡單例子!
          環(huán)境還是apache-activemq-5.2.0-bin.zip,需要注意的是,開發(fā)時候,要將apache-activemq- 5.2.0-bin.zip解壓縮后里面的activemq-all-5.2.0.jar包加入到classpath下面,這個包包含了所有jms接口 api的實現(xiàn)。

          Java代碼 復(fù)制代碼
          1. import org.apache.activemq.ActiveMQConnection;   
          2. import org.apache.activemq.ActiveMQConnectionFactory;   
          3.   
          4. import javax.jms.*;   
          5.   
          6. /**  
          7. * 消息的生產(chǎn)者(發(fā)送者)  
          8. *  
          9. */  
          10. public class JmsSender {   
          11.         public static void main(String[] args) throws JMSException {   
          12.                 // ConnectionFactory :連接工廠,JMS 用它創(chuàng)建連接   
          13.                 ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(   
          14.                                 ActiveMQConnection.DEFAULT_USER,   
          15.                                 ActiveMQConnection.DEFAULT_PASSWORD,   
          16.                                 "tcp://192.168.14.117:61616");   
          17.                 //JMS 客戶端到JMS Provider 的連接   
          18.                 Connection connection = connectionFactory.createConnection();   
          19.                 connection.start();   
          20.                 // Session: 一個發(fā)送或接收消息的線程   
          21.                 Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);   
          22.                 // Destination :消息的目的地;消息發(fā)送給誰.   
          23.                 // 獲取session注意參數(shù)值my-queue是Query的名字   
          24.                 Destination destination = session.createQueue("my-queue");   
          25.                 // MessageProducer:消息生產(chǎn)者   
          26.                 MessageProducer producer = session.createProducer(destination);   
          27.                 //設(shè)置不持久化   
          28.                 producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);   
          29.                 //發(fā)送一條消息   
          30.                 sendMsg(session, producer);   
          31.                 session.commit();   
          32.                 connection.close();   
          33.         }   
          34.   
          35.         /**  
          36.          * 在指定的會話上,通過指定的消息生產(chǎn)者發(fā)出一條消息  
          37.          *  
          38.          * @param session    消息會話  
          39.          * @param producer 消息生產(chǎn)者  
          40.          */  
          41.         public static void sendMsg(Session session, MessageProducer producer) throws JMSException {   
          42.                 //創(chuàng)建一條文本消息   
          43.                 TextMessage message = session.createTextMessage("Hello ActiveMQ!");   
          44.                 //通過消息生產(chǎn)者發(fā)出消息   
          45.                 producer.send(message);   
          46.                 System.out.println("");   
          47.         }   
          48. }  
           
          Java代碼 復(fù)制代碼
          1. import org.apache.activemq.ActiveMQConnection;   
          2. import org.apache.activemq.ActiveMQConnectionFactory;   
          3.   
          4. import javax.jms.*;   
          5.   
          6. /**  
          7. * 消息的消費者(接受者)  
          8. *  
          9. */  
          10. public class JmsReceiver {   
          11.         public static void main(String[] args) throws JMSException {   
          12.                 // ConnectionFactory :連接工廠,JMS 用它創(chuàng)建連接   
          13.                 ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(   
          14.                                 ActiveMQConnection.DEFAULT_USER,   
          15.                                 ActiveMQConnection.DEFAULT_PASSWORD,   
          16.                                 "tcp://192.168.14.117:61616");   
          17.                 //JMS 客戶端到JMS Provider 的連接   
          18.                 Connection connection = connectionFactory.createConnection();   
          19.                 connection.start();   
          20.                 // Session: 一個發(fā)送或接收消息的線程   
          21.                 Session session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE);   
          22.                 // Destination :消息的目的地;消息發(fā)送給誰.   
          23.                 // 獲取session注意參數(shù)值xingbo.xu-queue是一個服務(wù)器的queue,須在在ActiveMq的console配置   
          24.                 Destination destination = session.createQueue("my-queue");   
          25.                 // 消費者,消息接收者   
          26.                 MessageConsumer consumer = session.createConsumer(destination);   
          27.                 while (true) {   
          28.                         TextMessage message = (TextMessage) consumer.receive(1000);   
          29.                         if (null != message)   
          30.                                 System.out.println("收到消息:" + message.getText());   
          31.                         else  
          32.                                 break;   
          33.                 }   
          34.                 session.close();   
          35.                 connection.close();   
          36.         }   
          37. }  
           
          啟動ActiveMQ,然后開始執(zhí)行:
          先運行發(fā)送者,連續(xù)運行了三次,最后一次控制臺輸出:


          Process finished with exit code 0
           
          后運行接受者,輸出結(jié)果:
          收到消息Hello ActiveMQ!
          收到消息Hello ActiveMQ!
          收到消息Hello ActiveMQ!

          Process finished with exit code 0
           
          注意:
          其中的端口61616是ActiveMQ默認(rèn)的配置,在activemq.xml中,

          Xml代碼 復(fù)制代碼
          1. <!-- The transport connectors ActiveMQ will listen to -->  
          2.              <transportConnectors>  
          3.                      <transportConnector name="openwire" uri="tcp://localhost:61616" discoveryUri="multicast://default"/>  
          4.                      <transportConnector name="ssl" uri="ssl://localhost:61617"/>  
          5.                      <transportConnector name="stomp" uri="stomp://localhost:61613"/>  
          6.                      <transportConnector name="xmpp" uri="xmpp://localhost:61222"/>  
          7.              </transportConnectors>   
           
          ,建議不要改動,都用這個端口多好,就像ftp都用21端口,也沒錯。
           
           
          這是官方的HelloWorld例子,不過看著不順眼:
          http://activemq.apache.org/hello-world.html

          posted on 2009-09-16 13:00 大鳥 閱讀(1310) 評論(0)  編輯  收藏 所屬分類: JAVA
          主站蜘蛛池模板: 民权县| 兴化市| 务川| 称多县| 新河县| 安庆市| 木里| 常山县| 贺兰县| 保定市| 河南省| 观塘区| 鸡东县| 双峰县| 安乡县| 贵州省| 加查县| 北碚区| 徐闻县| 莱芜市| 乐山市| 灵璧县| 南和县| 承德县| 庄浪县| 巫山县| 永丰县| 马鞍山市| 双鸭山市| 尉氏县| 宣城市| 嵩明县| 潼南县| 崇文区| 开远市| 连山| 弋阳县| 田林县| 视频| 奉贤区| 平潭县|