⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 queuebrowse.java

📁 weblogic应用全实例
💻 JAVA
字号:
//声明这个类定义在包examples.jms.queue中
package examples.jms.queue;
//声明这个类引入的其它类和包
import java.io.*;
import java.util.*;
import java.util.Date;
import javax.transaction.*;
import javax.naming.*;
import javax.jms.*;

/**
 * 这个实例演示怎样建立一个JMS队列连接并浏览队列消息。
 这个目录中的例子操作同一个JMS队列。一起运行这些类观察消息发送和接收。
 * 浏览队列中的消息。
 */

public class QueueBrowse
{
  /**
   * 定义JNDI上下文构造器
   */
  public final static String JNDI_FACTORY="weblogic.jndi.WLInitialContextFactory";
  /**
   * 定义JMS上下文构造器
   */
  public final static String JMS_FACTORY="weblogic.examples.jms.QueueConnectionFactory";
  /**
   * 定义消息队列
   */
  public final static String QUEUE="weblogic.examples.jms.exampleQueue";
  //声明队列连接构造器
  private QueueConnectionFactory qconFactory;
  //声明队列连接
  private QueueConnection qcon;
  //声明队列会话
  private QueueSession qsession;
  //声明队列浏览器
  private QueueBrowser qbrowser;
  //声明队列
  private Queue queue;

  /**
   * 创建所有发送队列消息所需的对象
   *
   * @参数 ctx JNDI上下文
   * @参数 queueName 队列名
   * @异常 NamingException 如果操作不能执行抛出的异常
   * @异常 JMSException 由于内部错误,JMS 发送消息失败抛出的异常
   */
  public void init(Context ctx, String queueName)
       throws NamingException, JMSException
  {
   //查找连接构造器	
    qconFactory = (QueueConnectionFactory) ctx.lookup(JMS_FACTORY);
    //创建队列连接
    qcon = qconFactory.createQueueConnection();
    //创建队列会话
    qsession = qcon.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
    //查找消息队列
    queue = (Queue) ctx.lookup(queueName);
    //创建消息浏览器
    qbrowser = qsession.createBrowser(queue);
    //启动连接
    qcon.start();
  }

  /**
   * 显示队列的所有当前内容
   *
   * @异常 JMSException 由于内部错误,JMS 不能显示消息队列中的消息抛出的异常
   */
  public void displayQueue()
       throws JMSException
  {
    //获得浏览器属性枚举
    Enumeration e = qbrowser.getEnumeration();
    Message m = null;

    if (! e.hasMoreElements()) {
      System.out.println("There are no messages on this queue.");
    } else {
      System.out.println("Queued JMS Messages: ");
      while (e.hasMoreElements()) {
        m = (Message) e.nextElement();
        //打印消息的所有属性
        System.out.println("Message ID " + m.getJMSMessageID() + 
                           " delivered " + new Date(m.getJMSTimestamp()) + 
                           " to " + m.getJMSDestination());
        System.out.print("\tExpires        ");
        if (m.getJMSExpiration() > 0) {
          System.out.println( new Date( m.getJMSExpiration()));
            }
        else 
          System.out.println("never");
        System.out.println("\tPriority       " + m.getJMSPriority());
        System.out.println("\tMode           " + (
                      m.getJMSDeliveryMode() == DeliveryMode.PERSISTENT ? 
                                       "PERSISTENT" : "NON_PERSISTENT"));
        System.out.println("\tCorrelation ID " + m.getJMSCorrelationID());
        System.out.println("\tReply to       " + m.getJMSReplyTo());
        System.out.println("\tMessage type   " + m.getJMSType());
        if (m instanceof TextMessage) {
          System.out.println("\tTextMessage    \"" + ((TextMessage)m).getText() + "\"");
        }
      }
    }
  }

  /**
   * 关闭JMS对象
   *
   * @异常 JMSException 由于内部错误,JMS不能关闭对象抛出的异常
   */
  public void close()
       throws JMSException
  {
    //关闭对象
    qbrowser.close();
    qsession.close();
    qcon.close();
  }

  /**
   * main() 方法
   * 
   * @参数  args WebLogic服务器URL
   * @异常 Exception 如果执行失败
   */

  public static void main(String[] args)
       throws Exception 
  {
    if (args.length != 1) {
      System.out.println("Usage: java examples.jms.queue.QueueBrowse WebLogicURL");
      return;
    }
    //初始化
    InitialContext ic = getInitialContext(args[0]);
    //本类实例
    QueueBrowse qb = new QueueBrowse();
    //调用本类初始化方法
    qb.init(ic, QUEUE);
    //显示队列
    qb.displayQueue();
    //关闭
    qb.close();
  }
  //初始化上下文
  private static InitialContext getInitialContext(String url)
       throws NamingException 
  {
    //属性对象
    Hashtable env = new Hashtable();
    //设置属性
    env.put(Context.INITIAL_CONTEXT_FACTORY, JNDI_FACTORY);
    env.put(Context.PROVIDER_URL, url);
    return new InitialContext(env);
  }

}




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -