RMI 连接错误客户端
我在尝试连接到 RMI 服务时收到错误:
我正在使用以下方式执行客户端代码:
java -Djava.security.manager -Djava.security.policy=path\to\policy.all -jar "path\to\jarfile" "localhost:2020"
我正在使用的代码是:
public class PowerServiceClient
{
public static void main(String args[]) throws Exception
{
System.setSecurityManager
(new RMISecurityManager());
// Call registry for PowerService
PowerService service = (PowerService) Naming.lookup
("rmi://localhost:2020/PowerService");
DataInputStream din = new
DataInputStream (System.in);
}
}
我收到的错误是:
Exception in thread "main" java.rmi.UnmarshalException:
error unmarshalling return; nested exception is:
java.lang.ClassNotFoundException: rmiservice.PowerService
at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
at java.rmi.Naming.lookup(Unknown Source)
at powerclient.PowerServiceClient.main(PowerServiceClient.java:32)
Caused by: java.lang.ClassNotFoundException: rmiservice.PowerService
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at sun.rmi.server.LoaderHandler.loadProxyInterfaces(Unknown Source)
at sun.rmi.server.LoaderHandler.loadProxyClass(Unknown Source)
at sun.rmi.server.LoaderHandler.loadProxyClass(Unknown Source)
at java.rmi.server.RMIClassLoader$2.loadProxyClass(Unknown Source)
at java.rmi.server.RMIClassLoader.loadProxyClass(Unknown Source)
at sun.rmi.server.MarshalInputStream.resolveProxyClass(Unknown Source)
at java.io.ObjectInputStream.readProxyDesc(Unknown Source)
at java.io.ObjectInputStream.readClassDesc(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
... 3 more
有人知道这里的问题是什么吗?
I am getting an error when attempting to connect to an RMI service:
I am executing the client code using:
java -Djava.security.manager -Djava.security.policy=path\to\policy.all -jar "path\to\jarfile" "localhost:2020"
The code I am using is:
public class PowerServiceClient
{
public static void main(String args[]) throws Exception
{
System.setSecurityManager
(new RMISecurityManager());
// Call registry for PowerService
PowerService service = (PowerService) Naming.lookup
("rmi://localhost:2020/PowerService");
DataInputStream din = new
DataInputStream (System.in);
}
}
The error I am receiving is:
Exception in thread "main" java.rmi.UnmarshalException:
error unmarshalling return; nested exception is:
java.lang.ClassNotFoundException: rmiservice.PowerService
at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)
at java.rmi.Naming.lookup(Unknown Source)
at powerclient.PowerServiceClient.main(PowerServiceClient.java:32)
Caused by: java.lang.ClassNotFoundException: rmiservice.PowerService
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at sun.rmi.server.LoaderHandler.loadProxyInterfaces(Unknown Source)
at sun.rmi.server.LoaderHandler.loadProxyClass(Unknown Source)
at sun.rmi.server.LoaderHandler.loadProxyClass(Unknown Source)
at java.rmi.server.RMIClassLoader$2.loadProxyClass(Unknown Source)
at java.rmi.server.RMIClassLoader.loadProxyClass(Unknown Source)
at sun.rmi.server.MarshalInputStream.resolveProxyClass(Unknown Source)
at java.io.ObjectInputStream.readProxyDesc(Unknown Source)
at java.io.ObjectInputStream.readClassDesc(Unknown Source)
at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
at java.io.ObjectInputStream.readObject0(Unknown Source)
at java.io.ObjectInputStream.readObject(Unknown Source)
... 3 more
Does anyone know what the problem is here?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
注册表需要访问您的远程接口类及其对其类路径的依赖项。对此有三种解决方案。为了方便起见:
The Registry needs access to your remote interface class and its dependencies on its classpath. There are three solutions to that. In order of ease: