Anfängerproblem mit Session Bean

oppi

Mitglied
Hallo ! Ich bekomme leider ein simples HelloWorld Bean Beispiel nicht zum laufen. Ich benutze Netbeans 6.9.1 mit dem integrierten Glassfish

Hier der Code:

Das interface der Bean. Liegt im selben Package wie der Client und natürlich in der Jar File auf dem Server
Java:
package HelloWorldBean;

import java.rmi.RemoteException;

public interface HelloWorld {

    public void setName(String name) throws RemoteException;
    public String getName() throws RemoteException;

}

Die Implementierung:
Java:
package HelloWorldBean;

import java.io.Serializable;
import java.rmi.RemoteException;
import javax.ejb.Remote;
import javax.ejb.Stateful;

@Stateful
@Remote(HelloWorld.class)
public class HelloWorldBean implements Serializable, HelloWorld {

    private String name = "unbekannter Benutzer";

    public void setName(String name) throws RemoteException {
        this.name = name;
    }

    public String getName() throws RemoteException {
        return "Hello " + name;
    }

}

und hier der Client

Java:
package HelloWorldBean;

import java.rmi.RemoteException;
import javax.naming.InitialContext;
import javax.naming.NamingException;

public class Main {

    public static void main(String[] args) throws NamingException, RemoteException {
        String jndiName = HelloWorld.class.getName();
        InitialContext ctx = new InitialContext();
        try {
            HelloWorld remote = (HelloWorld)
              ctx.lookup(jndiName);
            System.out.println(remote.toString());
        } catch (NamingException nex) {
            System.out.println(nex.toString());
        }
        
    }

}

Leider wirft er mir hier die Exception:
Java:
java.lang.NullPointerException
javax.naming.NamingException: Lookup failed for 'HelloWorldBean.HelloWorld' in SerialContext  [Root exception is javax.naming.NamingException: Unable to acquire SerialContextProvider for SerialContext  [Root exception is java.lang.NullPointerException]]
        at com.sun.enterprise.naming.impl.SerialContext.getRemoteProvider(SerialContext.java:297)
        at com.sun.enterprise.naming.impl.SerialContext.getProvider(SerialContext.java:271)
        at com.sun.enterprise.naming.impl.SerialContext.lookup(SerialContext.java:430)
        at javax.naming.InitialContext.lookup(InitialContext.java:392)
        at HelloWorldBean.Main.main(Main.java:31)

Bin total neu in der Welt der EJB, von daher denke ich das ich irgendetwas total falsch mache :)
 

FArt

Top Contributor
Der JNDI-Name ist nicht gleich dem Klassennamen. der JNDI-Name fängt mit "java:comp/env/..." o.ä. an.
Grüße

Ja, der JNDI Name ist in der Regel nicht der Klassenname, wäre aber möglich.

Ein von außen sichtbarer JNDI Name hat übrigens keinen Prefix. "java:" ist der Prefix für den Namespace, der nur innerhalb der VM des JNDI Servers sichtbar ist und "comp/env" ist der komponenteneigene Namespace des EJBs, also nur innerhalb des Beans sichtbar und für Mappings verwendet wird.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K EJB Session Bean Application Tier 2
M EJB3 Annotations für Session Beans mit einem Parameter ? Application Tier 5
A Stateful Session Bean will nicht "stateful" sein Application Tier 18
S Statefull Session Bean für UserLogin Application Tier 4
O javax.naming.NoInitialContextException - Remote Session Bean Application Tier 2
N Kummunikation Application Client - Session Bean Application Tier 8
J Session-Bean aufräumen bei Timeout bei Seam/EJB Application Tier 6
F Time-out Zeit für Session-Bean Application Tier 4
K Benutzer-Daten über mehrere Session-Beans Application Tier 14
M Entity Bean wird nicht in stateless Session Bean injeziert Application Tier 3
F Lose Kopplung zwischen Session Beans Application Tier 4
S DB-Verbindung beenden beim auflauf der session? Application Tier 7
V EJB: Eine Remote Bean soll eine Local Bean ansprechen und dem Client übergeben Application Tier 2
B Spring context:component-scan: No such bean definition Application Tier 2
M EJB Stateless Bean ist immer null im REST WebService Application Tier 3
T ERROR: Bean name must not be empty! Application Tier 3
P Timer Bean Application Tier 11
B Message-Driven Bean reagiert nicht Application Tier 3
F Property-Datei in Stateless-Bean laden Application Tier 8
V Stateless-Bean soll Info aus Stateful-Bean holen Application Tier 3
byte [Spring] Referenced Bean not found Application Tier 2

Ähnliche Java Themen

Neue Themen


Oben