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

Java编程

开发平台:

Java

  1. package demojms;
  2. /*
  3.  * @(#)SimpleQueueSender.java
  4.  */
  5. import javax.jms.*;
  6. import javax.naming.*;
  7. import java.util.*;
  8. public class SimpleQueueSender {
  9.   public static void main(String[] args) {
  10.     String queueName = null;
  11.     Context jndiContext = null;
  12.     QueueConnectionFactory queueConnectionFactory = null;
  13.     QueueConnection queueConnection = null;
  14.     QueueSession queueSession = null;
  15.     Queue queue = null;
  16.     QueueSender queueSender = null;
  17.     TextMessage message = null;
  18.     final int NUM_MSGS;
  19.     /*if ( (args.length < 1) || (args.length > 2) ) {
  20.         System.out.println("Usage: java SimpleQueueSender " +
  21.             "<queue-name> [<number-of-messages>]");
  22.         System.exit(1);
  23.              }*/
  24.     queueName = "MyTestJMSQueue";
  25.     System.out.println("Queue name is " + queueName);
  26.     /*if (args.length == 2){
  27.         NUM_MSGS = (new Integer(args[1])).intValue();
  28.              } else {
  29.         NUM_MSGS = 1;
  30.              }*/
  31.     /*
  32.      * 如果不存在JNDI InitialContext对象,就创建一个
  33.      */
  34.     try {
  35.       Properties properties = null;
  36.       String url = "t3://127.0.0.1:7001";
  37.       properties = new Properties();
  38.       properties.put(Context.INITIAL_CONTEXT_FACTORY,
  39.                      "weblogic.jndi.WLInitialContextFactory");
  40.       properties.put(Context.PROVIDER_URL, url);
  41.       jndiContext = new InitialContext(properties);
  42.       //System.out.println(jndiContext);
  43.     }
  44.     catch (NamingException e) {
  45.       System.out.println("Could not create JNDI " +
  46.                          "context: " + e.toString());
  47.       System.exit(1);
  48.     }
  49.     /*
  50.      * 寻找connection factory和queue,如果两者读不存在,则退出
  51.      */
  52.     try {
  53.       queueConnectionFactory = (QueueConnectionFactory)
  54.           jndiContext.lookup("MyTestJMS");
  55.       queue = (Queue) jndiContext.lookup("MyTestJMSQueue");
  56.     }
  57.     catch (NamingException e) {
  58.       System.out.println("JNDI lookup failed: " +
  59.                          e.toString());
  60.       System.exit(1);
  61.     }
  62.     /*
  63.      * 创建一个connection,在从connection创建session
  64.      * 创建sender和文本消息,发送消息
  65.      * 最后,关闭connection
  66.      */
  67.     try {
  68.       queueConnection =
  69.           queueConnectionFactory.createQueueConnection();
  70.       queueSession =
  71.           queueConnection.createQueueSession(false,
  72.                                              Session.AUTO_ACKNOWLEDGE);
  73.       queueSender = queueSession.createSender(queue);
  74.       message = queueSession.createTextMessage();
  75.       for (int i = 0; i < 5; i++) {
  76.         message.setText("This is message " + (i + 1));
  77.         System.out.println("Sending message: " +
  78.                            message.getText());
  79.         queueSender.send(message);
  80.       }
  81.       /*
  82.        * 发送非文本的消息,描述消息结束
  83.        */
  84.       queueSender.send(queueSession.createMessage());
  85.     }
  86.     catch (JMSException e) {
  87.       System.out.println("Exception occurred: " +
  88.                          e.toString());
  89.     }
  90.     finally {
  91.       if (queueConnection != null) {
  92.         try {
  93.           queueConnection.close();
  94.         }
  95.         catch (JMSException e) {}
  96.       }
  97.     }
  98.   }
  99. }