依我看可能是你的文件没有配置好或是配置的不完全.建议你看一下<<Java2 核心技术卷II 高级特性>>.
它里面的第五章就讲到你RMI,并且很具体的操作和部署.或者把你的部署结构说出来,让大家帮你看一下有没有错.

解决方案 »

  1.   

    现在的错误是:连接被拒。
    如之奈何?
    //
    我是用java以前的技术,来了解一下RMI的流程。
    如果在Server里面使用:LocateRegistry.createRegistry(2222);
    则可以测试成功。
    但在外部用rmiregistry启动注册表服务,在Server程序中:
        //default is 1099;    
        RmiHelloRemoteObj ttt = new RmiHelloRemoteObj();
        //LocateRegistry.createRegistry(2222);
        //LocateRegistry.getRegistry(2222);
        Naming.rebind("//localhost/helloObj", ttt);//
    启动服务端程序:
    D:\pro\java\learnRMI\rmitest>java  -Djava.security.policy=RmiHelloServer.policy
    RmiHelloServer是不是java.rmi.server.codebase有问题,在同一目录下,应该不用吧。
    我也加了codebase,还是不行。
    错误为:
    java.rmi.ConnectException: Connection refused to host: localhost; nested excepti
    on is:
            java.net.ConnectException: Connection refused: connect
            at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:567)
            at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:185
    )
            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:160)
            at RmiHelloServer.main(RmiHelloServer.java:24)
    Caused by: java.net.ConnectException: Connection refused: connect
            at java.net.PlainSocketImpl.socketConnect(Native Method)
            at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:305)
        
            
      

  2.   

    createRegistry(int port) :Creates and exports a Registry on the local host that accepts requests on the specified port.
              
    getRegistry(int port) :Returns a reference to the the remote object Registry for the local host on the specified port.使用createRegistry就可以,就没有必要在外部启动rmiregistry了。
    而我想使用外部启动的rmiregistry。
    如何使用外部启动的registry服务呀?
    我用getRegistry(int port),总提示Connection refused to host。
    不是端口的问题,我用的是默认的值。          
      

  3.   

    谁能给出getRegistry的使用方法?
      

  4.   

    rmi远端类没有使用rmic编译。
    rmic MyServerIMPL。一下就可以了。
      

  5.   

    找到问题了,
    原来安装了Oracle 9i,它将自己的jre/bin加到了system的path的最前面
    我启动rmiregistry的时候,它调用了oracle的rmiregistry比较一下文件大小:
    oracle的rmiregistry,大小为:6144字节
    jdk1.4的rmiregistry,大小为:28775 字节因此,执行会不正常。
    问题总算找到了。
    气死我了!!!
    2003-11-23 16:39
      

  6.   

    hajavaor(思者) 我要送你100分啊我看了才搞定了我的RMI该死的ORACLE