java RMI无法运行服务器

时间:2013-10-30 11:52:03

标签: java rmi

我在与RMI斗争。 我对此非常陌生,并尝试了this tutorial

我的所有类和接口都编译得很好但是当我尝试运行Server类时,我得到一些例外(如下所列),项目构建如下:

-pakage hello
            --interface Hello.java
            --class Server.java
            --class Client.java

我做过Somme研究,他们总是建议更改安全策略文件。 所以我在java.policy中添加了以下策略:

grant 
{  
     permission java.security.AllPermission "", "";  
};

一个次要的“问题”:我运行Linux mint,所以我开始明白我不需要运行rmiregistry,这是正确的还是我需要启动它,我该怎么做。< / p>

列出的例外:

Server exception: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: 
    java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: 
    java.lang.ClassNotFoundException: hello.Hello
java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: 
    java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is: 
    java.lang.ClassNotFoundException: hello.Hello
    at sun.rmi.server.UnicastServerRef.oldDispatch(UnicastServerRef.java:419)
    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:267)
    at sun.rmi.transport.Transport$1.run(Transport.java:177)
    at sun.rmi.transport.Transport$1.run(Transport.java:174)
    at java.security.AccessController.doPrivileged(Native Method)
    at sun.rmi.transport.Transport.serviceCall(Transport.java:173)
    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:556)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:811)
    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:670)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:744)
    at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:275)
    at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:252)
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:378)
    at sun.rmi.registry.RegistryImpl_Stub.bind(Unknown Source)
    at hello.Server.main(Server.java:23)

有谁可以帮助我?

1 个答案:

答案 0 :(得分:1)

错误清楚地表明找不到hello.Hello类。请确保它在类路径中。您拥有所提供的link中的所有内容 - 启动Java RMI注册表,服务器和客户端