📄 queueconsumer.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 + -