甲骨文说那registry
是
同一主机上的 RMI 服务器使用引导命名服务将远程对象绑定到名称
现在,我有这样一个服务器,rmiregistry
用于提供JNDI
.
public class ObjectProvider {
public static void main(String[] args) {
System.setProperty("java.rmi.server.codebase", "file:/absolute/path/to/jar/where/person/class/is/my.jar");
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.rmi.registry.RegistryContextFactory");
Context context = new InitialContext(env);
context.bind("jordan", new Person("Michael Jordan"));
Person p = (Person) context.lookup("jordan");
System.out.println("jordan = " + p.getName());
}
}
和人类:
public class Person implements Remote, Serializable {
String name;
public Person(String name) { this.name = name; }
public String getName() { return name; }
}
并rmiregistry
以rmiregistry &
. 然而,当我运行代码时,它抱怨在执行时无法解组参数,bind
因为Person
找不到类。
我知道rmiregistry
找不到类文件,但我不明白为什么。这是告诉它在哪里可以找到要绑定的类的正确方法吗?