[jboss-user] [Messaging, JMS & JBossMQ] - Simple JMS Topic "lookup" problem

thoste do-not-reply at jboss.com
Thu May 17 06:51:23 EDT 2007


I am trying to implement a simple (most simple) JMS Topic.
Unfortunately I am getting an error when running it:

Exception in thread "main" javax.naming.NameNotFoundException: Topic not bound

What should I change ?
Thomas


The (short) source code is as follows:

package test.jms.topics;

import java.util.Properties;

import javax.jms.Message;
import javax.jms.Topic;
import javax.jms.TopicConnection;
import javax.jms.TopicConnectionFactory;
import javax.jms.TopicSubscriber;
import javax.jms.TopicPublisher;
import javax.jms.TopicSession;
import javax.jms.Session;
import javax.jms.TextMessage;
import javax.naming.Context;
import javax.naming.InitialContext;

public class TopicPubSubClient
{

   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 connection factory");
      TopicConnectionFactory tcf = (TopicConnectionFactory) ctx.lookup("UIL2ConnectionFactory");

      log.info("Looking up Topic mytopic");
      Topic mytopic = (Topic) ctx.lookup("Topic/testTopic");

      log.info("Creating connection");
      TopicConnection tc = tcf.createTopicConnection();
      try
      {
         log.info("Creating session");
         TopicSession ts = tc.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
         
         log.info("Creating sender");
         TopicPublisher sender = ts.createPublisher(mytopic);

         log.info("Creating message");
         TextMessage message = ts.createTextMessage("hello");

         log.info("Sending message");
         sender.send(message);

         log.info("Creating receiver");
         TopicSubscriber receiver = ts.createSubscriber(mytopic);

         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");
         tc.start();

         log.info("This receive will work");
         received = receiver.receiveNoWait();

         log.info("Got message: " + received);
      }
      finally
      {
         tc.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=4046446#4046446

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



More information about the jboss-user mailing list