From one EJB, you want to invoke a method on another EJB in a remote EJB container. In most EJB applications, completing business logic in one EJB involves invoking another EJB. Large enterprise applications may separate business logic across hosts, or may invoke other EJB applications to complete a workflow. In these cases, you might need to access remote EJBs from other EJBs. For this solution, you need to know how to create an initial context for finding a remote EJB container in order to look up or create remote EJBs.

In our case we use remote EJB running on WebLogic server 'some.host.com', so we set-up initial context instance with the correct properties to find a remote WebLogic container.

...
private SomeRemoteHome getSomeRemoteHome() {
  try {
    // configure and get initial JNDI context:
    Properties props = new Properties();
    
    props.put(Context.INITIAL_CONTEXT_FACTORY,
      "weblogic.jndi.WLInitialContextFactory");
    props.put(Context.PROVIDER_URL, "http://some.host.com:7001");
    
    Context ic = new InitialContext(props);
    
    // performs JNDI lookup of the EJB home-object:
    SomeRemoteHome home = (SomeRemoteHome
      ic.lookup("test.someHome");
    
    // necessarilly, retrieve the EJB's stub for use:
    home = (SomeRemoteHomePortableRemoteObject.narrow(
      home, EquityHome.class);

    return home;
    
  catch (NamingException error) {
    error.printStackTrace();
    return null;
  }
}
...