# JBoss NameNotFoundException: einloggen not bound



## erazor2106 (15. Nov 2011)

Hallo Leute,

ich bin neu in der JBoss Thematik und auch bei der Arbeit mit Eclipse. Ich habe angefangen mich mit dem Buch: Enterprise JavaBeans 3.0: Mit ... - Uwe Rozanski - Google Bücher  zu beschäftigen und auf dem Beispiel aus Kapitel 4 aufbauend ein kleines Programm zum laufen zu bringen.

Hierzu folgende Struktur

einloggen.java

```
package eigene_klassen;

import javax.ejb.*;
import java.io.*;
import javax.swing.*;


@Stateless
public class einloggen implements einloggenRemote
 {
	 public Session session;
	
	 public String Einloggen(String server, String portString)
	  {
              ....
	  }
 }
```

einloggenRemote.java

```
package eigene_klassen;

import javax.ejb.*;
import java.io.*;
import javax.swing.*;


@Remote
public interface einloggenRemote 
 {
	public String Einloggen(String server, String portString);
 }
```

funktionen.jsp

```
<%@ page import="java.util.*" 
         import="eigene_klassen.*" 

         import="javax.ejb.*"
         import="java.io.*"
	     import="javax.swing.*"
         import="javax.naming.*" 
         import="javax.rmi.PortableRemoteObject" 
         import="java.io.IOException"
   
         import="com.sun.org.apache.xml.internal.serializer.OutputPropertiesFactory"    
         import="org.bouncycastle.*"
         import="java.security.Security" 
%>	

        try
	 {
	   Properties p = new Properties();
	   p.put(Context.INITIAL_CONTEXT_FACTORY,	"org.jnp.interfaces.NamingContextFactory");
	   p.put(Context.URL_PKG_PREFIXES,   	    "org.jboss.naming:org.jnp.interfaces");
	   p.put(Context.PROVIDER_URL, 			    "jnp://localhost:1099");
	   Context ctx = new InitialContext(p);
       Object ref = ctx.lookup("java:/einloggen/Remote");
	   einloggenRemote fgr = einloggenRemote) PortableRemoteObject.narrow(ref,einloggenRemote.class);
         }
	catch (Exception e) 
	 {
             System.out.println("Fehler aufgetreten:  " + e.getMessage());
         }
```

Dieses wird dann ohne Probleme deployed. Ich bekomme aber dann immer folgenden Fehler beim Aufrufen der methode:


```
18:25:48,765 ERROR [[jsp]] Servlet.service() for servlet jsp threw exception
javax.naming.NameNotFoundException: einloggen not bound
	at org.jnp.server.NamingServer.getBinding(NamingServer.java:529)
	at org.jnp.server.NamingServer.getBinding(NamingServer.java:537)
	at org.jnp.server.NamingServer.getObject(NamingServer.java:543)
	at org.jnp.server.NamingServer.lookup(NamingServer.java:267)
	at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:625)
	at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:587)
	at javax.naming.InitialContext.lookup(InitialContext.java:392)
	at org.apache.jsp.web.kap04.funktionen_jsp._jspService(funktionen_jsp.java:92)
	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332)
	at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
	at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
	at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:175)
	at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
	at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
	at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
	at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
	at java.lang.Thread.run(Thread.java:662)
```

Ich habe gestern eine ganze Weile hierzu gegoogelt aber keine Lösung gefunden welche mir weiterhilft.
Der fehler tritt bei  Object ref = ctx.lookup("java:/einloggen/Remote");  auf

Im System verwende ich jdk1.6.0_25 und jboss-4.0.4.GA.
Ja ich weiß dass beides nicht up-to-date ist


----------



## TheDarkRose (15. Nov 2011)

Schau mal in dein JBoss ServerLog wie der JNDI-Name für deine EJB wirklich lautet.

Edit: Und beim JBoss solltest du wirklich auf eine neuere wechseln, es gibt zwar das Sprichwort "Auf alten Rädern lernt man fahren" aber das gilt hier IMHO nicht.


----------



## erazor2106 (15. Nov 2011)

Danke für die schnelle Antwort.

Wo soll dass da stehen bzw. nach welchem Eintrag soll ich da suchen? 
In dem Log-File stehen doch nur die Sachen die ich auch in der Console gesehen habe, oder?


----------



## erazor2106 (15. Nov 2011)

ich habe auch gerade in der jmx-console gesehen das meine Bean nicht bei den Namespaces aufgeführt ist. Wie kann ich sie denn dort hinzufügen?


----------



## erazor2106 (15. Nov 2011)

Problem gelöst!

In einer der Klassen gab es einen Fehler welcher irgendwie nicht angezeigt wurde. Deshalb gab es keinen EIntrag im JNDIView und somit auch kein lookup möglich.


----------

