java:rmiregistry安装程序

时间:2011-04-15 21:30:51

标签: java rmi rmiregistry

所以我使用LocateRegistry.createRegistry(),但这有一个问题:即它在调用它的进程中运行,所以如果我使用多个JVM,那么崩溃到启动注册表的JVM将删除所有 JVM的注册表。

所以看起来我需要使用rmiregistry(或其他东西?)来隔离从服务器JVM进行RMI查找/绑定的进程。

我尝试这样做,现在当我尝试Registry.rebind()时出现此错误:

java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: 
    java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: 
    java.lang.ClassNotFoundException: {my remote interface name}
    at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:396)
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:250)
    at sun.rmi.transport.Transport$1.run(Transport.java:159)
    at java.security.AccessController.doPrivileged(Native Method)

我做错了什么?我用谷歌搜索了这个例外&它与RMI代码库有关,但我真的迷失在这里。如果问题出在rmiregistry命令中,那么告诉它该做什么的命令行选项是什么?如果问题出在我的服务器JVM中,我需要做什么?

1 个答案:

答案 0 :(得分:1)

什么崩溃?多年来我没有看到JVM崩溃。除非您拥有JNI,否则包含RMI服务器的JVM不会比rmiregistry命令启动的独立JVM崩溃。并且使用LocateRegistry.createRegistry()可以永久地解决类路径问题。