Jason-Jessica

          Java

            BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
            5 Posts :: 0 Stories :: 0 Comments :: 0 Trackbacks

          2011年11月8日 #

           1 import javax.jms.Connection;
           2 import javax.jms.ConnectionFactory;
           3 import javax.jms.Destination;
           4 import javax.jms.MessageConsumer;
           5 import javax.jms.Session;
           6 import javax.jms.TextMessage;
           7 
           8 import org.apache.activemq.ActiveMQConnection;
           9 import org.apache.activemq.ActiveMQConnectionFactory;
          10 
          11 public class QueueReceive{
          12  public static void main(String[] args) {
          13 
          14   // ConnectionFactory :連接工廠(chǎng),JMS 用它創(chuàng)建連接
          15   ConnectionFactory connectionFactory;
          16   // Connection :JMS 客戶(hù)端到JMS Provider 的連接
          17   Connection connection = null;
          18   // Session: 一個(gè)發(fā)送或接收消息的線(xiàn)程
          19   Session session;
          20   // Destination :消息的目的地;消息發(fā)送給誰(shuí).
          21   Destination destination;
          22   // 消費(fèi)者,消息接收者
          23   MessageConsumer consumer;
          24 
          25   connectionFactory = new ActiveMQConnectionFactory(
          26     ActiveMQConnection.DEFAULT_USER,
          27     ActiveMQConnection.DEFAULT_PASSWORD,
          28     "tcp://localhost:61616");
          29   try {
          30    // 構(gòu)造從工廠(chǎng)得到連接對(duì)象
          31    connection = connectionFactory.createConnection();
          32    // 啟動(dòng)
          33    connection.start();
          34    // 獲取操作連接
          35    session = connection.createSession(Boolean.FALSE,
          36      Session.AUTO_ACKNOWLEDGE);
          37    // 獲取session注意參數(shù)是一個(gè)服務(wù)器的queue,須在在A(yíng)ctiveMq的console配置
          38    destination = session.createQueue("queue1");
          39    consumer = session.createConsumer(destination);
          40    while (true) {
          41     TextMessage message = (TextMessage) consumer.receive(1000);
          42     if (null != message) {
          43      System.out.println("收到消息" + message.getText());
          44 
          45     } else {
          46      break;
          47     }
          48 
          49    }
          50 
          51   } catch (Exception e) {
          52    e.printStackTrace();
          53   } finally {
          54    try {
          55     if (null != connection)
          56      connection.close();
          57    } catch (Throwable ignore) {
          58    }
          59   }
          60 
          61  }
          62 
           1 import javax.jms.Connection;
           2 import javax.jms.ConnectionFactory;
           3 import javax.jms.DeliveryMode;
           4 import javax.jms.Destination;
           5 import javax.jms.MessageProducer;
           6 import javax.jms.Session;
           7 import javax.jms.TextMessage;
           8 
           9 import org.apache.activemq.ActiveMQConnection;
          10 import org.apache.activemq.ActiveMQConnectionFactory;
          11 
          12 public class QueueSend {
          13  private static final int SEND_NUMBER = 5;
          14 
          15  public static void main(String[] args) {
          16   // ConnectionFactory :連接工廠(chǎng),JMS 用它創(chuàng)建連接
          17   ConnectionFactory connectionFactory;
          18   // Connection :JMS 客戶(hù)端到JMS Provider 的連接
          19   Connection connection = null;
          20   // Session: 一個(gè)發(fā)送或接收消息的線(xiàn)程
          21   Session session;
          22   // Destination :消息的目的地;消息發(fā)送給誰(shuí).
          23   Destination destination;
          24   // MessageProducer:消息發(fā)送者
          25   MessageProducer producer;
          26   // TextMessage message;
          27   // 構(gòu)造ConnectionFactory實(shí)例對(duì)象,此處采用ActiveMq的實(shí)現(xiàn)jar
          28 
          29   connectionFactory = new ActiveMQConnectionFactory(
          30     ActiveMQConnection.DEFAULT_USER,
          31     ActiveMQConnection.DEFAULT_PASSWORD,
          32     "tcp://localhost:61616");
          33 
          34   try {
          35    // 構(gòu)造從工廠(chǎng)得到連接對(duì)象
          36    connection = connectionFactory.createConnection();
          37    // 啟動(dòng)
          38    connection.start();
          39    // 獲取操作連接
          40    session = connection.createSession(Boolean.TRUE,
          41      Session.AUTO_ACKNOWLEDGE);
          42    // queue1需要在admin界面創(chuàng)建
          43    destination = session.createQueue("queue1");
          44    // 得到消息生成者
          45 
          46    producer = session.createProducer(destination);
          47    // 設(shè)置不持久化,此處學(xué)習(xí),實(shí)際根據(jù)項(xiàng)目決定
          48    producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
          49    // 構(gòu)造消息,此處寫(xiě)死,項(xiàng)目就是參數(shù),或者方法獲取
          50    sendMessage(session, producer);
          51    session.commit();
          52 
          53   } catch (Exception e) {
          54    e.printStackTrace();
          55   } finally {
          56    try {
          57     if (null != connection)
          58      connection.close();
          59    } catch (Throwable ignore) {
          60    }
          61   }
          62 
          63  }
          64 
          65  public static void sendMessage(Session session, MessageProducer producer)
          66    throws Exception {
          67   for (int i = 1; i <=SEND_NUMBER; i++) {
          68    TextMessage message = session
          69      .createTextMessage("ActiveMq 發(fā)送的消息" + i);
          70    // 發(fā)送消息到目的地方
          71    System.out.println("發(fā)送消息:" + i+"成功");
          72    producer.send(message);
          73   }
          74  }
          75 }
          }
          posted @ 2012-02-11 14:34 JasonLee 閱讀(253) | 評(píng)論 (0)編輯 收藏

          通信方式:
          --------------------------------------
          請(qǐng)求/應(yīng)答(同步,異步,TxRPC)
          管道通信(嵌套,轉(zhuǎn)發(fā))
          會(huì)話(huà)通信
          事件代理(發(fā)布/訂閱)
          消息通告(廣播/通告)
          隊(duì)列機(jī)制(可靠隊(duì)列傳輸/存儲(chǔ)轉(zhuǎn)發(fā))
          --------------------------------------
          多種通信緩沖區(qū):
          -------------------------------------------------------
          CARRAY、STRING、VIEW/VIEW32、FML/FML32、XML
          -------------------------------------------------------
          posted @ 2011-11-08 16:26 JasonLee 閱讀(342) | 評(píng)論 (0)編輯 收藏

          主站蜘蛛池模板: 张掖市| 凤冈县| 黄石市| 陇川县| 靖远县| 兰坪| 通化市| 潼关县| 绩溪县| 浠水县| 永靖县| 河间市| 马公市| 且末县| 湟源县| 宜兰县| 永靖县| 大足县| 平阴县| 茶陵县| 黄梅县| 清水河县| 彰化县| 永兴县| 额尔古纳市| 怀仁县| 乐昌市| 三都| 遂昌县| 郁南县| 晋州市| 高青县| 宾阳县| 察哈| 昌平区| 海安县| 丹巴县| 乐业县| 南雄市| 清流县| 蕲春县|