Hallo Jungs,
ich bin realtiv neu im dem Thema, also enthauptet mich bitte nicht für dämliche Fragen. Danke.
Ich habe eine sehr simple SessionBean geschrieben. Die konnte ich auch problemlos deployen. Zusätzlich habe ich einen Client geschrieben der darauf zugreifen soll. Der Client und der Server befinden sich auf unterschiedlichen Rechnern. Soweit ich das verstanden habe, muss ich mir einen IntialContext erzeugen und mittels lookup die EJB über seinen JNDI-Name aus der jboss.xml holen.
Soweit OK?
Wenn ich nun also auf einen Context auf einem entferneten Rechner zugreifen möchte, müssen beim Erzeugen des Context zusätzliche parameter übergeben werden. Das habe ich wie folgt gemacht:
soweit scheint es noch zu klappen!?
Dann versuche ich das EJB-Objekt zu holen:
Und genau hier knallts mit folgender Exception:
Wenn mir jemand einen Hinweis oder eine Erklärung hierfür geben könnte, wäre ich sehr dankbar. Denn sonst platzt bald mein Kopf.
Vielen Dank
Harri E.
ich bin realtiv neu im dem Thema, also enthauptet mich bitte nicht für dämliche Fragen. Danke.
Ich habe eine sehr simple SessionBean geschrieben. Die konnte ich auch problemlos deployen. Zusätzlich habe ich einen Client geschrieben der darauf zugreifen soll. Der Client und der Server befinden sich auf unterschiedlichen Rechnern. Soweit ich das verstanden habe, muss ich mir einen IntialContext erzeugen und mittels lookup die EJB über seinen JNDI-Name aus der jboss.xml holen.
Code:
<?xml version="1.0" encoding="UTF-8"?>
<jboss>
<enterprise-beans>
<session>
<ejb-name>HelloWorldBean</ejb-name>
<jndi-name>helloEJB</jndi-name>
</session>
</enterprise-beans>
</jboss>
Wenn ich nun also auf einen Context auf einem entferneten Rechner zugreifen möchte, müssen beim Erzeugen des Context zusätzliche parameter übergeben werden. Das habe ich wie folgt gemacht:
Code:
String urlName = "jnp://hulk:1099";
Properties p = new Properties();
p.put("javax.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
p.put("javax.naming.provider.url", urlName);
p.put("java.naming.factory.url.pkgs", "org.jboss.naming:org.jnp.interfaces");
InitialContext jndiContext = new InitialContext(p);
Dann versuche ich das EJB-Objekt zu holen:
Code:
Object ref = jndiContext.lookup("helloEJB");
Code:
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 HelloWorldClient.main(HelloWorldClient.java:49)
Vielen Dank
Harri E.