[jboss-user] [Messaging, JMS & JBossMQ] - Re: Frustration with basic client and broken examples.

dbs do-not-reply at jboss.com
Mon Nov 6 16:32:14 EST 2006


I have gotten the example to successfully run, but I'm not 100% -why- it runs now and didn't before.  Here's the updated code, hopefully someone can validate whether this should be put into the wiki or not:

Do we really need the direct references to the Spy* classes?


  | package com.areteinc.queue;
  | 
  | 
  | import java.util.Properties;
  | 
  | import javax.jms.Message;
  | import javax.jms.Queue;
  | import javax.jms.QueueConnection;
  | import javax.jms.QueueConnectionFactory;
  | import javax.jms.QueueReceiver;
  | import javax.jms.QueueSession;
  | import javax.jms.Session;
  | import javax.jms.TextMessage;
  | import javax.naming.Context;
  | import javax.naming.InitialContext;
  | import org.jboss.mq.SpyQueueSender;
  | 
  | public class QueueExample
  | {
  | 
  | 	// @Resource(mappedName="queue/A") 
  | 	// static SpyDestination queue;
  | 	public static void main(String[] args) throws Exception
  | 	{
  | 		log.info("Creating jndi context - alternatively use a jndi.properties");
  | 		Properties properties = new Properties();
  | 		properties.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
  | 		properties.put(Context.URL_PKG_PREFIXES, "org.jnp.interfaces");
  | 		properties.put(Context.PROVIDER_URL, "localhost");
  | 
  | 		InitialContext ctx = new InitialContext(properties);
  | 
  | 		log.info("Looking up queue");
  | 
  | 		Context remoteCtx = new InitialContext(properties);
  | 		Queue queue = (Queue)remoteCtx.lookup("queue/A");
  | 		
  | 		log.info("Looking up connection factory");
  | 		QueueConnectionFactory qcf = (QueueConnectionFactory) ctx.lookup("UIL2ConnectionFactory"); 
  | 
  | 		log.info("Creating connection");
  | 		QueueConnection qc = qcf.createQueueConnection();
  | 		try
  | 		{
  | 			log.info("Creating session");
  | 			QueueSession qs = qc.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
  | 
  | 			log.info("Creating sender");
  | 			SpyQueueSender sender = (SpyQueueSender)qs.createSender(queue);
  | 
  | 			log.info("Creating message");
  | 			TextMessage message = qs.createTextMessage("hello");
  | 
  | 			log.info("Sending message");
  | 			sender.send(queue,message);
  | 
  | 			log.info("Creating receiver");
  | 			QueueReceiver receiver = qs.createReceiver(queue);
  | 
  | 			log.info("Try to receive message, it will not work");
  | 			Message received = receiver.receiveNoWait();
  | 			if (received != null)
  | 				throw new RuntimeException("Should not get a message if the connection is not started!");
  | 
  | 			log.info("You have to start the connection before receiving messages");
  | 			qc.start();
  | 
  | 			log.info("This receive will work");
  | 			received = receiver.receiveNoWait();
  | 
  | 			log.info("Got message: " + received);
  | 		}
  | 		finally
  | 		{
  | 			qc.close();
  | 		}
  | 	}
  | 
  | 	public static class log
  | 	{
  | 		public static void info(String message)
  | 		{
  | 			System.out.println(message);
  | 		}
  | 		public static void error(String message, Throwable t)
  | 		{
  | 			System.err.println(message);
  | 			t.printStackTrace();
  | 		}
  | 	}
  | }

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3983568#3983568

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3983568



More information about the jboss-user mailing list