したがって、問題は、クライアントがrmiregistryを使用して関数を呼び出せるようにするサーバーコードがあることです。OS Xターミナルでこれらのコマンドを実行していて、作業している2つのフォルダーがあることに注意してください。
RMI
- rmiregistry を呼び出し、
Server
- すべてのサーバー コードを含む
したがって、1 つのターミナルを開き、次のように入力します。
rmiregistry -J-Djava.rmi.server.codebase=file:/Desktop/RMI/Server/ &
すべて順調です。ポートが戻ってきました。次に、サーバー コードを含む Server フォルダーにログインして、calculatorserver
プログラムを実行します。ここで、コードベースとセキュリティ ポリシーを指定するように指示されました。
java -Djava.rmi.server.codebase=file:/Desktop/RMI/Server/ -Djava.security.policy=server.policy calculatorserver
ただし、この同じエラーが引き続き発生します。
Server Error: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassNotFoundException: calculator
このエラーが発生する唯一の理由は、rmiregistry がサーバー オブジェクトを見つけられないためだとわかっています。
いくつかのガイダンスをいただければ幸いです