server类在服务器注册了没有?
rmiregistry 加端口号
然后在程序中注册

解决方案 »

  1.   

    如果用了 System.setSecurityManager函数,最好先去掉
      

  2.   

    我也在学习rmi中,回答不一定正确。共同学习:)
    应该还有一个clientImly用来实现接口。
      

  3.   

    可以yourApplication.client --把所有客户类放到这个包中。
        yourApplication.interface -- 把所有合约类放到这里。
        yourApplication.server --把所有服务器类放到这里。然后简单的把yourApplication.client和yourApplication.interface封装到客户中,
              把yourApplication.server和yourApplication.interface封装到服务器中。
    这样会比较好管理些。:)
      

  4.   

    执行rmiregistry 加端口号
    服务端还要执行服务程序myrmidbserver的
      

  5.   

    在policy策略文件中设置成grant all
      

  6.   

    policy策略文件是怎么回事呀,我想程序可能是这里出了问题,这个文件扩展名是什么,谁能详细的说一下这方面的问题?
      

  7.   

    文件扩展名可以任意,但文件是纯文本格式,例如:
    grant {
    permission java.security.AllPermission "", "";
    };
    这就是一个policy文件,如果程序中没有使用System.setSecurityManager函数,可以不配置policy文件.
      

  8.   

    1.
    rmiregistry
    2.
    java -Djava.security.policy=mypolicy.policy myrmidbserver
    3.
    java -Djava.security.policy=mypolicy.policy myrmidbclient
      

  9.   

    为什么在我执行java -Djava.security.policy=mypolicy.policy myrmidbserver时出现错误提示是:java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:2222 connect,resolve)
            at java.security.AccessControlContext.checkPermission(AccessControlConte
    xt.java:273)
            at java.security.AccessController.checkPermission(AccessController.java:
    404)
            at java.lang.SecurityManager.checkPermission(SecurityManager.java:545)
            at java.lang.SecurityManager.checkConnect(SecurityManager.java:1047)
            at java.net.Socket.connect(Socket.java:424)
            at java.net.Socket.connect(Socket.java:379)
            at java.net.Socket.<init>(Socket.java:293)
            at java.net.Socket.<init>(Socket.java:121)
            at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirect
    SocketFactory.java:25)
            at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMaster
    SocketFactory.java:125)
            at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:565)
            at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:188
    )
            at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:174)
            at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:316)
            at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
            at java.rmi.Naming.rebind(Naming.java:162)
            at RmiHelloServer.main(RmiHelloServer.java:28)
    到底是哪里的问题呢,调程序真是一件苦恼的事~~~
      

  10.   

    问题已经解决,是policy的问题,修改java.policy文件,就可以通过了,真得很谢谢大家的帮忙!