server必须有接通的网络环境支持,我估计你是在单机上实现的server和client

解决方案 »

  1.   

    有的类是否能在classpath中找到?
      

  2.   

    mannma说得不对,rmi可以在本地机器上运行,没有网络也可以,我做过测试,client通过ftp和http协议都可以访问服务器。应该是类路径没设对,看看加上一个 -classpath 参数,带上那个类所在得绝对路径试试。
      

  3.   

    你给你的细节情况贴出来,我帮你看看,我的rmi server可以起来,但client怎么配也不行,你帮我看看贴子:
       (SOS高手请进进,指点一二),关于RMI配置的问题:
      

  4.   

    昨天那个毛病没了,今天又出这个问题
    C:\testjava\rmi\defaultroot\myclasses>java -Djava.rmi.server.codebase=file:///c
    /testjava/rmi/defaultroot/myclasses -Djava.security.policy=file:///c:/testjava/
    mi/defaultroot/myclasses examples.hello.HelloImpl
    HelloImpl err: access denied (java.net.SocketPermission 192.168.0.86:1099 conne
    t,resolve)
    java.security.AccessControlException: access denied (java.net.SocketPermission
    92.168.0.86:1099 connect,resolve)
            at java.security.AccessControlContext.checkPermission(AccessControlCont
    xt.java:270)
            at java.security.AccessController.checkPermission(AccessController.java
    401)
            at java.lang.SecurityManager.checkPermission(SecurityManager.java:542)
            at java.lang.SecurityManager.checkConnect(SecurityManager.java:1044)
            at java.net.Socket.connect(Socket.java:419)
            at java.net.Socket.connect(Socket.java:375)
            at java.net.Socket.<init>(Socket.java:290)
            at java.net.Socket.<init>(Socket.java:118)
            at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirec
    SocketFactory.java:22)
            at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMaste
    SocketFactory.java:122)
            at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:562)
            at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:18
    )
            at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:171)
            at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:313)
            at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
            at java.rmi.Naming.rebind(Naming.java:159)
            at examples.hello.HelloImpl.main(HelloImpl.java:28)C:\testjava\rmi\defaultroot\myclasses>
      

  5.   

    你的policy文件权限是否放开,可以这样设(全部放开)
    grant {
            // allows anyone to listen on un-privileged ports
            permission java.net.SocketPermission "*:1024-65535", "listen,accept,connect";
           // permission java.io.FilePermission "*", "read,write";
            permission java.security.AllPermission;};Rmiregister是否起来了
    成功了记的给分
      

  6.   

    刚才成功了一次,可是我又从新试着在输一次,又出现ClassNotfound了,
      

  7.   

    请问如果我的绑定服务端,我的class发到WEB-INF/classes下面,加载的时候
    要写这个目录吗?如-Djava.rmi.server.codebase=http://192.168.0.86:8082/WEB-INF/classes
    还是直接-Djava.rmi.server.codebase=http://192.168.0.86:8082/
    后面跟examples.testrmi.RmiImpl