On Sep 12, 2007, at 6:27 PM, Karan Malhi wrote:

Dain,

Installation was successful!!.

However, I put my bean classes in the classes directory, tried to look
it up from a servlet and am getting the following exceptoin. What am I
doing wrong? I am just tired, prolly need a strong cup of coffee.

javax.naming.ServiceUnavailableException: Cannot lookup
'/GreetingBeanBusinessRemote'. [Root exception is
java.net.ConnectException: Cannot connect to server
'foo://127.0.0.1:4201'.  Check that the server is started and that the
specified serverURL is correct.]


You should use the LocalInitialContextFactory instead of the RemoteInitialContextFactory.

The LocalInitialContextFactory is used to connect to containers in your vm. The RemoteInitialContextFactory is used to connect over a network to containers in another vm.

You could use the RemoteInitialContextFactory to connect to ejbs in your webapp, but you'd have to specify the serverUrl which would be something like this:

  Properties p = new Properties();
p.put("java.naming.factory.initial", "org.apache.openejb.client.RemoteInitialContextFactory"); p.put("java.naming.provider.url", "http://127.0.0.1:8080/openejb/ ejb");
  InitialContext context = new InitialContext(p);
  context.lookup("GreetingBeanBusinessRemote");

Though, I'd only ever use that style if you wanted to connect via a standalone EJB client application. Use the LocalInitialContextFactory for looking up anything in your same vm.

  Properties p = new Properties();
p.put("java.naming.factory.initial", "org.apache.openejb.client.LocalInitialContextFactory");
  InitialContext context = new InitialContext(p);
  context.lookup("GreetingBeanBusinessRemote");


-David

Reply via email to