0

由于客户端和服务器都在同一个系统上运行,所以每件事都运行良好,但是当我在远程 m/c 上运行其中一个时,我正在使用 vmware,客户端无法找到服务器的存根和服务器无法找到用于动态加载的客户端类..

我确信这是我设置代码库 url 的方式的问题,但我应该如何更改它们。

目前,我将它们设置为

文件:/E:/surshikradmin/workspace/rmi-server/bin/ 用于服务器..

和客户端一样的方式..我也应该添加主机名,但是如何?任何帮助都会非常有帮助,因为多年来我一直在处理问题并解决它将使 ma 项目变得摇滚..

客户端堆栈跟踪是否有帮助!

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 在哪里可以找到它们。在那些JVM 上设置它没有任何效果。

  2. 它必须设置为对对等方有意义的值。因此,导出 JVM 自己的文件系统上的文件或目录将无法工作,因为对等方看不到该文件。

  3. 这就是为什么代码库 URL 通常是http:URL。如果 URL 通过共享名命名共享驱动器,则可以使用file:URL,但如果您在 LAN 内,我真的不明白为什么您需要使用代码库功能。

于 2013-07-03T00:13:39.330 回答