我是新来的Java RMI,我正在跟随一个教程来了解它。它使用一台服务器,代码列表如下用于获取服务器连接到Java RMI服务器
CalculatorServer.java
public class CalculatorServer { public CalculatorServer(){ try { Calculator c = new CalculatorImpl(); Naming.rebind("rmi://localhost:1099/CalculatorService", c); } catch (Exception e) { System.out.println("Trouble"+e); } } public static void main(String args[]){ new CalculatorServer(); } }
CalculatorImpl.java
public class CalculatorImpl extends UnicastRemoteObject implements Calculator { //constructor public CalculatorImpl() throws RemoteException { super(); } //@Override public long add(long a, long b) throws RemoteException { return a + b; } //@Override public long sub(long a, long b) throws RemoteException { return a - b; } //@Override public long mul(long a, long b) throws RemoteException { return a * b; } // @Override public long div(long a, long b) throws RemoteException { return a/b; } }
3.Calculator .java
public interface Calculator extends Remote{
public long add(long a, long b) throws RemoteException;
public long sub(long a, long b) throws RemoteException;
public long mul(long a, long b) throws RemoteException;
public long div(long a, long b) throws RemoteException;
}
当我调试程序时,这是netbeans ide控制台发生的错误; 它说这个错误:Troublejava.rmi.ServerException:在服务器线程中发生RemoteException;嵌套的异常是: java.rmi.UnmarshalException:错误解组参数;嵌套的异常是: java.lang.ClassNotFoundException:rmi.Calculator
rmiregistry必须在其classpath上有接口类。 – jtahlborn
你可以发布客户代码吗? –