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

📄 queueconsumer.java

📁 BEA WebLogic Server 8.1大全 = BEA webLogic server 8.1 unleashed (美) Mark Artiges等著 袁毅 ... [等] 译 eng
💻 JAVA
字号:
package com.wls8unleashed.jms;

import javax.jms.*;
import javax.naming.*;

/** 
 * Implements a basic consumer from a JMS queue.
 * Extends the QueueManager for some basic initialization
 * help.
 */
public class QueueConsumer extends QueueManager 
    implements MessageListener {

	private QueueReceiver queueReceiver;
	public boolean quitFromReceiving = false;

	/**
	 * Constructor creates all of the objects to receive messages
	 */
	public QueueConsumer(Context context)
		throws NamingException, JMSException {

    // Call superclass QueueManager constructor
    super(context);
    
		// Create queue receiver
		System.out.println("Creating queue receiver...");
		queueReceiver = queueSession.createReceiver(queue);

		// Register QueueConsumer as MessageListener
		System.out.println("Setting message listener...");
		queueReceiver.setMessageListener(this);

		// Start receiving messages
		System.out.println("Starting queue connection...");
		queueConnection.start();
	}

	/**
	 * Implements the message listener and prints a message.
	 */
	public void onMessage(Message message) {
		MessageHandler handler = new MessageHandler();
		handler.onMessage(message);
	}

	/**
   * Close JMS related objects.
   */
	public void close() throws JMSException {
		this.queueReceiver.close();
		this.queueSession.close();
		this.queueConnection.close();
	}
  
  /**
   * Main method used to execute the QueueConsumer example
   */
	public static void main(String[] args){
    try{
  		// Create JNDI context
  		Context context = Props.getInitialContext();
      
      // Create new QueueConsumer
      System.out.println("Creating new QueueConsumer...");
  		QueueConsumer queueConsumer = new QueueConsumer(context);
  
  		System.out.println("QueueConsumer is ready to receive messages...");
  
  		// Receive messages until user quits from program or quit flags true.
  		synchronized (queueConsumer) {
  			while (!queueConsumer.quitFromReceiving) {
  				try {
            // Wait for messages
  					queueConsumer.wait();
  				} catch (InterruptedException interruptedException) {
  					System.out.println("Interruption!");
  					interruptedException.printStackTrace();
  				}
  			}
  		}
  
      // Close up resources when done and exit
  		queueConsumer.close();
  		context.close();
  		System.exit(0);
    }catch(Exception e){
      System.out.println("Problem executing queue consumer");
      e.printStackTrace();
    }
	}
}

⌨️ 快捷键说明

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