Properties props=System.getProperties();
Context ctx=new InitialContext(props);
args = 这里有没有输入错误

解决方案 »

  1.   

    如果你在应用服务器中,这样是没有错误的,因为如下的内容已经包含在中间了
          prop.put(Context.INITIAL_CONTEXT_FACTORY,
                   "org.jnp.interfaces.NamingContextFactory");
          prop.put(Context.PROVIDER_URL,"iiop://host/");如果是其他地方,就要直接给出来,这个参数是根据具体的应用服务器来确定的,
    你可以参照BEA的文档来做就可以了,以前WEBLOGIC用的不是IIOP协议,缺省是使用
    他自己定义的T3协议
      

  2.   

    weblogic示例代码:Hashtable ht = new Hashtable();
    ht.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
    ht.put(Context.PROVIDER_URL, "t3://localhost:7001");Context ctx = new InitialContext(ht);
      

  3.   

    在一个JVM里在直接写就可以的.如:
     Context context = new InitialContext();
    Object obj=ctx.lookup("Hello");
    HelloHome Home=(HelloHome)PortableRemoteObject.narrow(obj,HelloHome.class);
    如果还不行可以用楼上的方法或者是下面的方法.
     properties = new Properties();
            properties.put(Context.INITIAL_CONTEXT_FACTORY,
                           "weblogic.jndi.WLInitialContextFactory");
            properties.put(Context.PROVIDER_URL, EJBSERVERURL);
            properties.put(Context.SECURITY_PRINCIPAL, EJBUSERNAME);
            properties.put(Context.SECURITY_CREDENTIALS, EJBPASSWORD);
            Context context = new InitialContext(properties);建议: 如果你是在一个EJB容器里面运行EJB,可以用LOCAL模式,这样就不用序列化你的对象了,可以这样直接得到对象的引用:
    HelloHome home = (HelloHome) context.lookup(
                "Hello");这样就可以了 ^_^