1

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

私はポリシーをテストしましたが、問題なく動作しています。助けていただければ幸いです。

4

1 に答える 1