package com.tddinaction.j2ee.jms;
import javax.jms.Message;
import javax.jms.MessageListener;
import javax.jms.ObjectMessage;
import javax.jms.Queue;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.jms.QueueSender;
import javax.jms.QueueSession;
import javax.jms.Session;
public class SearchListenerBean implements MessageListener {
public SearchService searchService;
public QueueConnectionFactory connectionFactory;
public Queue resultsQueue;
public void onMessage(Message message) {
try {
ObjectMessage searchRequest = (ObjectMessage) message;
String[] keywords = (String[]) searchRequest.getObject();
String[] results = searchService.search(keywords);
QueueConnection connection = connectionFactory
.createQueueConnection();
QueueSession session = connection.createQueueSession(
false, Session.AUTO_ACKNOWLEDGE);
QueueSender sender = session.createSender(resultsQueue);
message = session.createObjectMessage(results);
sender.send(message);
connection.close();
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}