You have not specified the system properties to get the InitialContext.

Use the following code to get the InitialContext.

 

Properties props = new Properties();

props.put("java.naming.factory.initial","org.openejb.client.RemoteInitialContextFactory");

props.put("java.naming.provider.url", "127.0.0.1:4201");

props.put("java.naming.security.principal", "system");

props.put("java.naming.security.credentials", "manager");

 

javax.naming.InitialContext ctx = new javax.naming.InitialContext(props);

 

With Regards,

Rakesh Ranjan

 

 


From: Siraj Mohamed [mailto:Siraj@virtusa.com]
Sent: Wednesday, November 23, 2005 4:05 PM
To: user@geronimo.apache.org
Subject: EJB JNDI lookup

 

Hi All,

 

I have deployed a hello world application (helloworld.ear) on Geronimo 1.0 M5. I have written a java client class to test my application. But I am getting following error message from the client code:

 

NamingException: 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

 

It tells that I have to set java.naming.factory.initial and java.naming.provider.url in the jndi.properties. What would be the values to be specified for them for Geronimo server?

 

 

This is my sample client code:

 

/*

 * A simple client for accessing an EJB.

 */

 

public class HelloClient

{

  public static void main(String[] args)

  {

    System.out.println("client started...");

    try {

      javax.naming.Context ctx = new javax.naming.InitialContext();

 

      // This is for use with com.evermind.server.ApplicationClientInitialContextFactory

      System.out.println("looking up...");

      Object homeObject = ctx.lookup("java:comp/env/HelloBean");

 

      // Narrow the reference to HelloHome

      HelloHome home =

            (HelloHome) PortableRemoteObject.narrow(homeObject, HelloHome.class);

 

      // Create remote object and narrow the reference to Hello.

      Hello remote =

            (Hello) PortableRemoteObject.narrow(home.create(), Hello.class);

 

      System.out.println(remote.sayHello("James Earl"));

 

    } catch(NamingException e) {

      System.err.println("NamingException: " + e.getMessage());

    } catch(RemoteException e) {

      System.err.println("RemoteException: " + e.getMessage());

    } catch(CreateException e) {

      System.err.println("FinderException: " + e.getMessage());

    }

  }

}

 

 

Thanks in advance,

 

-Siraj

This e-mail and any files transmitted with it are for the sole use of the intended recipient(s) and may contain confidential and privileged information.
If you are not the intended recipient, please contact the sender by reply e-mail and destroy all copies of the original message.
Any unauthorized review, use, disclosure, dissemination, forwarding, printing or copying of this email or any action taken in reliance on this e-mail is strictly
prohibited and may be unlawful.

Visit us at http://www.cognizant.com