Wie bekomme ich denn einen Zugriff auf die EJB ???

Status
Nicht offen für weitere Antworten.

LastUnicorn

Aktives Mitglied
Hallo,

ich will mir gerade EJB beibringen und stosse gleich mal auf ein Problem. Um den Ablauf des deploys und so zu kennen habe ich einfach mal ein Beispiel aus einem Buch abgetippt. (Session Beans) die Session, SessionHome und SessionImpl Klasse hab ich dann über das Deployment Tool von Java zusammengefasst zu einem ear file und habe das dann deployd. In der Info steht auch, dass diese gestartet ist mit dem JNDI Namen "HelloWorld" (wer hätte das gedacht)

Nun hab ich eine Client Klasse geschrieben:

Code:
public class TestHallo {
    
    /** Creates a new instance of TestHallo */
    public TestHallo() 
    {
        
    }
    
    public static void main(String[] args)
    {
        try
        {           
            
            // JNDI Namenskontext erstellen
            Context context = new InitialContext();
            
            // nach HelloWorld suchen
            HelloWorldSessionHome home = (HelloWorldSessionHome) 
            PortableRemoteObject.narrow(context.lookup("HelloWorld"), HelloWorldSessionHome.class);
        
            // neue Session Bean erstellen
            HelloWorldSession session = (HelloWorldSession) home.create();

	    System.out.println("Default Greeting is : " + session.getGreeting());

            session.remove();
        }
        catch (Throwable t)
        {
            t.printStackTrace();
        }
    }
    
}

wie man sieht hab ich im LookUp auch "HelloWorld" aber ich bekomme immer folgende Exception:

javax.naming.NoInitialContextException: Need to specify class name in environment or system property, or as an applet parameter, or in an application resource file: java.naming.factory.initial
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:640)
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:243)
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:280)
at javax.naming.InitialContext.lookup(InitialContext.java:347)
at SessionBeans.TestHallo.main(TestHallo.java:35)


Jetzt weiss ich nicht was mein Fehler ist. Ich hab schon durchs Buch geblättert und im J2ee Tutorial nachgesehen aber entweder erschlagen die einen mit Infos oder es steht garnichts dazu da. Das richtige hab ich leider noch nicht raus gefunden.

Muss ich vielleicht irgendwo die Domain angeben? Momentan versuche ich das aus dem Netbeans raus zu starten. Kann es sein, dass ich die Klasse mit irgendeinem Parameter aufrufen muss ?
 

nollario

Bekanntes Mitglied
hast du eine jndi.properties datei? darin müssen die jndi einstellungen gemacht werden (initial context etc.)
 
G

Guest

Gast
danke,

die muss ich dann sicher auf der client seite setzen oder ? Bis jetzt habe ich da noch keine
 

nollario

Bekanntes Mitglied
jep... und die sieht ungefähr so aus (für localhost, jboss als appserver):

Code:
### JBossNS properties
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.provider.url=jnp://localhost:1099
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces

müsstest du eben anpassen... welchen server nutzt du denn?
 

LastUnicorn

Aktives Mitglied
momentan benutze ich den Sun Application Server. Aber auch nur weil sich mein Buch darauf bezieht. Wenn ich das erstmal einigermaßen auf die Reihe bekommen habe, dann will ich auf den JBoss umsteigen weil ich mit dem dann ab November auch arbeiten werde.

Vielleicht steig ich auch gleich um. Aber das sollte ja eigentlich egal sein. Der Server scheint das ja deployd zu haben nur ich komm halt nicht rauf (localhost). Die jndi.properties....muss die einfach irgendwo in den ClassPath oder sucht er danach explizit an irgendeinem platz ?

Auf jeden fall ist die Hilfestellung total nett :)
 

LastUnicorn

Aktives Mitglied
Hey, na wenn ich damit das nicht hin bekomme, dann ist mir wahrscheinlich auch nicht mehr zu helfen *g. Ich werd mir das am Wochenende mal durchprobieren :### . Danke, die Seite ist ein super Tip :)
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben