RMI の hello world の例を編集して、異なるマシン上のクライアントとサーバーで動作するようにしたいのですが、アンマーシャリングの戻りエラーで立ち往生しています。
Netbeans の同じプロジェクトでクライアントとサーバーを実行すると、正常に動作しますが、それらを分割すると、クライアント側の try ステートメントを次のように編集しました。
try {
Registry registry = LocateRegistry.getRegistry("localhost");
String[] c = registry.list();
System.out.println(c[0].toString());
Remote lookup = Naming.lookup("HelloServer");
} catch (Exception e) {
System.out.println("HelloClient exception: " + e.getMessage());
}
なしRemote lookup = Naming.lookup("HelloServer");
で、印刷コマンドは正しい「HelloServer」を提供しますが、リモートオブジェクトを作成すると、次のエラーが発生します。
HelloClient exception: error unmarshalling return; nested exception is:
java.lang.ClassNotFoundException: rmimain.Hello
私はポリシーをテストしましたが、問題なく動作しています。助けていただければ幸いです。