SyncTopicSubscriber.java
上传用户:dinglihq
上传日期:2013-02-04
资源大小:99958k
文件大小:2k
源码类别:

Java编程

开发平台:

Java

  1. package bible.jms;
  2. import javax.jms.*;
  3. import javax.naming.*;
  4. import java.util.*;
  5. /**
  6.  * Class SyncTopicSubscriber
  7.  *
  8.  *
  9.  * @author
  10.  * @version %I%, %G%
  11.  */
  12. public class SyncTopicSubscriber {
  13.   /**
  14.    * Method main
  15.    *
  16.    *
  17.    * @param args
  18.    *
  19.    */
  20.   public static void main(String[] args) {
  21.     Context                ctx                = null;
  22.     Hashtable              ht                 = new Hashtable();
  23.     TopicConnectionFactory tConnectionFactory = null;
  24.     TopicConnection        tConnection        = null;
  25.     TopicSession           tSession           = null;
  26.     TopicSubscriber        tSubscriber        = null;
  27.     Topic                  t                  = null;
  28.     TextMessage            textMsg            = null;
  29.     String                 msg;
  30.     try {
  31.       // Obtain references to JMS Topic components.
  32.       ht.put(Context.INITIAL_CONTEXT_FACTORY,
  33.              "weblogic.jndi.WLInitialContextFactory");
  34.       ht.put(Context.PROVIDER_URL, "t3://localhost:7001");
  35.       ctx                = new InitialContext(ht);
  36.       tConnectionFactory =
  37.         (TopicConnectionFactory) ctx.lookup("BibleJMSFactory");
  38.       tConnection        = tConnectionFactory.createTopicConnection();
  39.       tSession           = tConnection.createTopicSession(false,
  40.         javax.jms.TopicSession.AUTO_ACKNOWLEDGE);
  41.       t                  = (Topic) ctx.lookup("BibleJMSTopic");
  42.       tSubscriber        = tSession.createSubscriber(t);
  43.       System.out.println("Receiving messages...");
  44.       tConnection.start();
  45.       textMsg = (TextMessage) tSubscriber.receive();
  46.       while (true) {
  47.         msg = textMsg.getText();
  48.         System.out.println("  Receiving message: " + msg);
  49.         if (msg.equals("Stop")) {
  50.           break;
  51.         }
  52.         textMsg = (TextMessage) tSubscriber.receive();
  53.       }
  54.       tConnection.stop();
  55.     } catch (Exception e) {
  56.       e.printStackTrace();
  57.     } finally {
  58.       try {
  59.         // Release JMS resources.
  60.         tSubscriber.close();
  61.         tSession.close();
  62.         tConnection.close();
  63.       } catch (Exception e) {
  64.         e.printStackTrace();
  65.       }
  66.     }
  67.   }
  68. }
  69. /*--- Formatted in Bible Style on Thu, Sep 6, '01 ---*/
  70. /*------ Formatted by Jindent 3.24 Gold 1.02 --- http://www.jindent.de ------*/