0

私はRMIに苦労しています。私はこれがまったく初めてで、このチュートリアルを試しました

すべてのクラスとインターフェイスは適切にコンパイルされますが、Server クラスを実行しようとすると、いくつかの例外 (以下にリスト) が発生します。プロジェクトは次のようにビルドされます。

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

私はいくつかの調査を行いましたが、彼らは常にセキュリティポリシーファイルを変更することを提案しました. そこで、次のポリシーを java.policy に追加しました。

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

二次的な「質問」:私はLinux mintを実行しているので、rmiregistryを実行する必要がないことを理解するようになりました.rmiregistryは正しいですか、それとも開始する必要がありますか?

リストされている例外:

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)

私を助けることができる人は誰ですか?

4

1 に答える 1

1

このエラーは、hello.Hello クラスが見つからないことを明確に示しています。クラスパスにあることを確認してください。提供したリンクにすべてが含まれています - セクションJava RMI レジストリ、サーバー、およびクライアントを起動する

于 2013-10-30T11:57:03.097 に答える