1

我正在尝试使用来自 Atg Dyanmo 应用服务器中的外部 JVM 的 JNDI 访问一些对象。我正在使用以下代码 -

    import java.util.Hashtable;
    import javax.naming.Context;
    import javax.naming.InitialContext;

    public class URLTest {

    public static Object getNamedObject() {
    Object o = null;
    Hashtable env = new Hashtable();

    env.put(Context.INITIAL_CONTEXT_FACTORY, "atg.jndi.url.dynamoejb.RemoteEJBContext");
    env.put(Context.URL_PKG_PREFIXES, "atg.jndi.url.dynamoejb ");

    env.put(Context.PROVIDER_URL, "rmi://10.112.83.203:8860");

    env.put(Context.SECURITY_PRINCIPAL, "admin");
    env.put(Context.SECURITY_CREDENTIALS, "admin");

    try
    {
    Context ctx = new InitialContext(env);
    System.out.println("Got Context - " + ctx);

    o = ctx.lookup("dynamo:/pearsonpoc/beans/UserInformation");
    System.out.println("Lookup success  - " + o);
}
    catch (Exception e) {
    System.out.println("ERR - " + e);
    }

    return o;
    }
    }

当我在同一个 jvm 上运行此代码时,它可以正常工作,但是当我从其他 jvm 尝试此代码时,它不起作用。Rmi 服务器在 8860 端口上运行。服务器上是否有任何设置基本上停止来自客户端的请求?这是我得到的例外 -

09:46:25,963 INFO [STDOUT] 获取上下文 - javax.naming.InitialContext@e3a921 09:46:26,010 INFO [STDOUT] ERR - javax.naming.NameNotFoundException: dynamo:/pearsonpoc/beans/UserInformation 09:46:26,010 INFO [STDOUT] 结果 - 空

请帮忙。谢谢

4

1 回答 1

1

您需要在服务器上导出服务。

进行此更改。/atg/dynamo/server/RmiServer.properties

导出服务+=/pearsonpoc/beans/UserInformation

于 2009-08-12T18:07:25.660 回答