title: How to resolve exception in thread “main” javax.naming.NameNotFoundException: not bound?
body: <p>I'm trying to create a jms publisher/subscriber chat application in eclipse. </p>
  
  <pre><code>import java.util.Properties;
      import javax.jms.JMSException;
      import javax.jms.Message;
      import javax.jms.MessageListener;
      import javax.jms.TextMessage;
      import javax.jms.Topic;
      import javax.jms.TopicConnection;
      import javax.jms.TopicConnectionFactory;
      import javax.jms.TopicSession;
      import javax.naming.Context;
      import javax.naming.InitialContext;
      import javax.naming.NamingException;
      public class TopicConsumer implements MessageListener {
          public static void main(String[] args) throws JMSException, NamingException {
              System.out.println(".....Entering JMS example TopicConsumer....");  
              Context context = TopicConsumer.getInitialContext();
              TopicConnectionFactory topicConnectionFactory = (TopicConnectionFactory) context.lookup("ConnectionFactory");
              Topic topic = (Topic) context.lookup("topic/zaneacademy_jms_tutorial_01");
              TopicConnection topicConnection = topicConnectionFactory.createTopicConnection();
              TopicSession topicSession = topicConnection.createTopicSession(false, TopicSession.AUTO_ACKNOWLEDGE);
              topicSession.createSubscriber(topic).setMessageListener(new TopicConsumer());
              topicConnection.start();
              System.out.println("......Exiting JMS Example TopicConsumer.....");
              }
              public void onMessage(Message message) {
                  try {
                      System.out.println("Incoming Messages: " + ((TextMessage)message).getText());
                  } catch (JMSException e) {
                      e.printStackTrace();
                  }
              }
              public static Context getInitialContext() throws JMSException, NamingException {
                  Properties props = new Properties();
                  props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
                  props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming");
                  props.setProperty("java.naming.provider.url", "localhost:1099");
                  Context context = new InitialContext(props);
                  return context;
              }
          }
  </code></pre>
  
  <p>trying to run the program I'm getting the following errors in console</p>
  
  <pre>
  .....Entering JMS example TopicConsumer....
  Exception in thread "main" javax.naming.NameNotFoundException: zaneacademy_jms_tutorial_01 not bound
      at org.jnp.server.NamingServer.getBinding(NamingServer.java:564)
      at org.jnp.server.NamingServer.getBinding(NamingServer.java:572)
      at org.jnp.server.NamingServer.getObject(NamingServer.java:578)
      at org.jnp.server.NamingServer.lookup(NamingServer.java:317)
      at org.jnp.server.NamingServer.lookup(NamingServer.java:291)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
      at java.lang.reflect.Method.invoke(Unknown Source)
      at sun.rmi.server.UnicastServerRef.dispatch(Unknown Source)
      at sun.rmi.transport.Transport$1.run(Unknown Source)
      at sun.rmi.transport.Transport$1.run(Unknown Source)
      at java.security.AccessController.doPrivileged(Native Method)
      at sun.rmi.transport.Transport.serviceCall(Unknown Source)
      at sun.rmi.transport.tcp.TCPTransport.handleMessages(Unknown Source)
      at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(Unknown Source)
      at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
      at java.lang.Thread.run(Unknown Source)
      at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Unknown Source)
      at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source)
      at sun.rmi.server.UnicastRef.invoke(Unknown Source)
      at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(Unknown Source)
      at java.rmi.server.RemoteObjectInvocationHandler.invoke(Unknown Source)
      at com.sun.proxy.$Proxy0.lookup(Unknown Source)
      at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:669)
      at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:629)
      at javax.naming.InitialContext.lookup(Unknown Source)
      at TopicConsumer.main(TopicConsumer.java:19)
  </pre>