0

クライアントとサーバーの両方が同じシステムで実行されているため、すべてが正常に機能しますが、リモート m/c でそのうちの 1 つを実行しているため、そのために vmware を使用しています。クライアントはサーバーのスタブとサーバーを見つけることができません。動的ロード用のクライアント クラスを見つけることができません。

コードベースの URL を設定する方法に問題があると確信していますが、どのように変更すればよいでしょうか。

現在、私はそれらを

ファイル:/E:/surshikradmin/workspace/rmi-server/bin/ サーバー用..

クライアントの場合も同様です..ホスト名も追加する必要がありますが、どうすればいいですか??? 何年もの間、私は問題に対処しており、それを解決するとプロジェクトがうまくいくので、どんな助けも非常に役に立ちます..

クライアント側のスタック トレースが役立つ場合があります。

Computeappengine exceptionerror unmarshalling return; nested exception is: 
java.lang.ClassNotFoundException: Engine.ComputeappEngine_Stub
java.rmi.UnmarshalException: error unmarshalling return; nested exception is: 
java.lang.ClassNotFoundException: Engine.ComputeappEngine_Stub
at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
at Client.computeappprog.main(computeappprog.java:23)
 Caused by: java.lang.ClassNotFoundException: Engine.ComputeappEngine_Stub
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:247)
at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:432)
at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:163)
at java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.java:620)
at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:247)
at sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputStream.java:197)
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1574)
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1495)
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1731)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
... 2 more
4

1 に答える 1

0
  1. コードベース システム プロパティは、コードベース (通常はサーバー) 経由で利用できるクラスを持つJVM で設定されます。その目的は、クラスを持たないJVMにそれらを見つける場所を伝えることです。これらのJVMで設定しても効果はありません。

  2. ピアにとって意味のある値に設定する必要があります。そのため、ピアがそのファイルを見ることができないため、エクスポートしている JVM 自身のファイル システム上のファイルまたはディレクトリは機能しません。

  3. そのため、コードベースの URL は通常http:URL です。共有ドライブを共有名で指定する場合は URL を使用できfile:ますが、LAN 内にいる場合は、コードベース機能を使用する必要がある理由がまったくわかりません。

于 2013-07-03T00:13:39.330 に答える