私は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.電卓.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 occured in server thread; ネストされた例外は次のとおりです: java.rmi.UnmarshalException: 引数の非整列化エラー。ネストされた例外: java.lang.ClassNotFoundException: rmi.Calculator