Chapter 23 898 Extended JMS Example We will now wrap up our look at JMS with a more complicated example. In this example, there are two classes: StockGuy and a PurchaserGuy. The StockGuy publishes stock quotes and listens for stock purchase orders. The PurchaserGuy listens for certain stock quotes and issues purchase orders. Both the StockGuy and the PurchaserGuy use a PurchaseOrder class, which represents a purchase order. You can find the listing for this class later in the example. The StockGuy Class Let's look at the StockGuy first: package JMSEXample; import common.*; import java.io.*; import javax.jms.*; import javax.naming.*; public class StockGuy implements MessageListener {   private TopicConnection topicConnection = null;   private TopicSession topicSession = null;   private Topic stockQuotesTopic = null;   private TopicPublisher stockQuotesPublisher = null;   private QueueConnection queueConnection = null;   private QueueSession queueSession = null;   private Queue purchaseOrdersQueue = null;   private QueueReceiver purchaseOrdersReceiver = null;   private void setup() throws NamingException, JMSException   {     InitialContext ctx = WeblogicJMSDetails.getInitialContext();     // Get a queue connection     QueueConnectionFactory queueConFactory = (QueueConnectionFactory) ctx.lookup(WeblogicJMSDetails.JMS_CONNECTION_FACTORY);     queueConnection = queueConFactory.createQueueConnection();     // Create a queue receiver     queueSession = queueConnection.createQueueSession(false,Session.AUTO_ACKNOWLEDGE);     purchaseOrdersQueue = (Queue)ctx.lookup("PurchaseOrdersQueue");     // Set ourselves as the listener for the messages     purchaseOrdersReceiver = queueSession.createReceiver(purchaseOrdersQueue);     purchaseOrdersReceiver.setMessageListener(this);     // Get a topic connection     TopicConnectionFactory topicConFactory = (TopicConnectionFactory) ctx.lookup(WeblogicJMSDetails.JMS_CONNECTION_FACTORY);;     topicConnection = topicConFactory.createTopicConnection();