title: How to solve javax.naming.NameNotFoundException at this code
body: <p>I make a Ejb project in netbean 7.3 with jboss-7.1.1 Final </p>
  
  <p>In Ejb module i have these:</p>
  
  <p>LibrarySessionBeanRemote.java</p>
  
  <pre><code>package com.tutorialspoint.stateless;
  
  import java.util.List;
  import javax.ejb.Remote;
  
  @Remote
  public interface LibrarySessionBeanRemote {
  void addBook(String bookName);
  List getBooks(); 
  }
  </code></pre>
  
  <p>LibrarySessionBean.java</p>
  
  <pre><code>package com.tutorialspoint.stateless;
  
  import java.util.ArrayList;
  import java.util.List;
  import javax.ejb.Remote;
  import javax.ejb.Stateless;
  
  
  @Stateless
  @Remote(LibrarySessionBeanRemote.class)
  public class LibrarySessionBean implements LibrarySessionBeanRemote {
  
  List&lt;String&gt; bookSelf;    
  
  public LibrarySessionBean() {
  this.bookSelf = new ArrayList&lt;String&gt;();
  }
  
  @Override
  public void addBook(String bookName) {
  bookSelf.add(bookName);
  }
  
  @Override
  public List getBooks() {
  return bookSelf;
  }
  }
  </code></pre>
  
  <p>and I make a client with java application project type</p>
  
  <pre><code>package client;
  
  import com.tutorialspoint.stateless.LibrarySessionBeanRemote;
  import java.io.BufferedReader;
  import java.io.IOException;
  import java.io.InputStreamReader;
  import java.util.List;
  import java.util.Properties;
  import javax.naming.Context;
  import javax.naming.InitialContext;
  import javax.naming.NamingException;
  
  
  public class EJBTester {
  
  BufferedReader brConsoleReader = null;
  Properties props;
  InitialContext ctx;
  {
      props = new Properties();
          props.put(Context.SECURITY_PRINCIPAL, "testuser");
          props.put(Context.SECURITY_CREDENTIALS, "test");
          props.put(Context.PROVIDER_URL, "remote://localhost:4447");
          props.put("jboss.naming.client.ejb.context", true);
          props.put(Context.INITIAL_CONTEXT_FACTORY,   org.jboss.naming.remote.client.InitialContextFactory.class.getName());
      try {
          ctx = new InitialContext(props);
      } catch (NamingException ex) {
  
          ex.printStackTrace();
      }
      brConsoleReader =
              new BufferedReader(new InputStreamReader(System.in));
  }
  
  public static void main(String[] args) {
  
      EJBTester ejbTester = new EJBTester();
  
      ejbTester.testStatelessEjb();
  }
  
  private void showGUI() {
      System.out.println("**********************");
      System.out.println("Welcome to Book Store");
      System.out.println("**********************");
      System.out.print("Options \n1. Add Book\n2. Exit \nEnter Choice: ");
  }
  
  private void testStatelessEjb() {
      try {
          int choice = 1;
  
          LibrarySessionBeanRemote libraryBean =
                  (LibrarySessionBeanRemote) ctx.lookup("LibrarySessionBean/remote");
  
          while (choice != 2) {
              String bookName;
              showGUI();
              String strChoice = brConsoleReader.readLine();
              choice = Integer.parseInt(strChoice);
              if (choice == 1) {
                  System.out.print("Enter book name: ");
                  bookName = brConsoleReader.readLine();
                  libraryBean.addBook(bookName);
              } else if (choice == 2) {
                  break;
              }
          }
          List&lt;String&gt; booksList = libraryBean.getBooks();
          System.out.println("Book(s) entered so far: " + booksList.size());
          for (int i = 0; i &lt; booksList.size(); ++i) {
              System.out.println((i + 1) + ". " + booksList.get(i));
          }
          LibrarySessionBeanRemote libraryBean1 =
                  (LibrarySessionBeanRemote) ctx.lookup("LibrarySessionBean/remote");
          List&lt;String&gt; booksList1 = libraryBean1.getBooks();
          System.out.println(
                  "***Using second lookup to get library stateless object***");
          System.out.println(
                  "Book(s) entered so far: " + booksList1.size());
          for (int i = 0; i &lt; booksList1.size(); ++i) {
              System.out.println((i + 1) + ". " + booksList1.get(i));
          }
      } catch (Exception e) {
          System.out.println(e.getMessage());
          e.printStackTrace();
      } finally {
          try {
              if (brConsoleReader != null) {
                  brConsoleReader.close();
              }
          } catch (IOException ex) {
              System.out.println(ex.getMessage());
          }
      }
  }
  }
  </code></pre>
  
  <p>but i have this exception</p>
  
  <pre><code>javax.naming.NameNotFoundException: LibrarySessionBean/remote -- service jboss.naming.context.java.jboss.exported.LibrarySessionBean.remote
      at org.jboss.as.naming.ServiceBasedNamingStore.lookup(ServiceBasedNamingStore.java:97)
      at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:178)
      at org.jboss.naming.remote.protocol.v1.Protocol$1.handleServerMessage(Protocol.java:127)
      at org.jboss.naming.remote.protocol.v1.RemoteNamingServerV1$MessageReciever$1.run(RemoteNamingServerV1.java:73)
  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
  at java.lang.Thread.run(Thread.java:722)
  </code></pre>