JavaRMI-注册表绑定调用导致NoSuchObjectException
我有一个简单的程序,可以让calcPi()在Java RMI上可用, 当我启动程序时,出现以下异常:JavaRMI-注册表绑定调用导致NoSuchObjectException,java,exception,rmi,Java,Exception,Rmi,我有一个简单的程序,可以让calcPi()在Java RMI上可用, 当我启动程序时,出现以下异常: java.rmi.NoSuchObjectException: no such object in table at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Unknown Source) at sun.rmi.transport.StreamRemoteCall.executeCall(Unk
java.rmi.NoSuchObjectException: no such object in table
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Unknown Source)
at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source)
at sun.rmi.server.UnicastRef.invoke(Unknown Source)
at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
at server.CalculatePi.main(CalculatePi.java:24)
这是我的代码,在界面下方:
public class CalculatePi implements ICalculatePi {
@Override
public Double calcPi() throws RemoteException{
return 3.141259;
}
public static void main(String[]args){
if(System.getSecurityManager()==null){
System.setProperty("security.policy","file:./security.policy");
}
try{
String name="Pi-Rechner";
ICalculatePi rechner=new CalculatePi();
ICalculatePi stub=(ICalculatePi) UnicastRemoteObject.exportObject(rechner, 0);
Registry myRegistry=LocateRegistry.getRegistry();
myRegistry.rebind(name,stub);
System.out.println("Rechner gebunden!");
}catch(Exception e){
e.printStackTrace();
}
}
}
这是我的界面:
package server;
import java.rmi.Remote;
import java.rmi.RemoteException;
public interface ICalculatePi extends Remote {
public Double calcPi() throws RemoteException;
}
编程时,我遵循了教程:
如果有人得到了一个好的简单的解决方案,谢谢 您的系统上正在运行另一个RMI进程,该进程在端口1099上导出,但它不是RMI注册表。找到该进程,杀死它,然后运行RMI注册表(通常是
rmiregistry
命令)