你在本地用的是localhost
在别的机器上应该明确指出ip

解决方案 »

  1.   

    可能是这样:你在同一台机器上测试的时候,你直接或间接的指明了
    你的stub所存放的目录,所以,Client程序直接从classpath读入了
    stub,而根本没有通过http/ftp/class server等方法传输,所以,
    你把它放到实际环境中,当然就不行了。
    建议你写具体些,启动rmiregistry的环境,classpath, 可用的传输方法,
    命令行执行命令,security.policy都贴出来
      

  2.   

    我是启动 RMIREGISTRY 1000   
    这是 CLASSPATH
    .;d:\j2sdk1.4.0\lib\dt.jar;d:\j2sdk1.4.0\lib\tools.jar;d;\j2sdkee1.3.1\lib\j2ee.jar;d:\jcifs-0.7.0b3.jar;D:\bea\wlserver6.1\lib\weblogic.jar;D:\bea\wlserver6.1\lib\mssqlserver4v65.jar;D:\j2sdk1.4.0\lib\fscontext.jar;可传输的方法 可以是 TCP/IP
    security.policy:
    java.security.AllPermissionimport java.rmi.Remote;
    import java.rmi.RemoteException;
    import java.rmi.Naming;public class rmi_client
    {
    public static void main(String args[])
    {
    rmi_interface rmii=null;


    if(args.length!=2)
    {
    System.err.println(
    "Usage : rmi_server<host of rmi_server remote object><port>");

    System.exit(-1);
    }

    try
    {
    System.setSecurityManager(new java.rmi.RMISecurityManager());
    }
    catch(java.rmi.RMISecurityException exc)
    {
    System.err.println("Security vertion " +exc.toString());
    System.exit(-1);
    }


    try
    {
    String target="rmi://"+args[0]+":"+args[1]+"/rmi_server";

    System.out.println("Attempting to connact " + target);

    Remote reObject=Naming.lookup(target);

    if (reObject instanceof rmi_interface)
    {
    rmii=(rmi_interface)reObject;
    }
    else
    {
    throw new Exception(
    "Bad object return from remote machine");
    }
    }
    catch(Exception e)
    {
    System.err.println("Error in lookup() "+e.toString());
    System.exit(-1);
    }

    try
    {
    System.out.println(rmii.flip(5));

    }
    catch(RemoteException e)
    {
    System.err.println("Remote error: "+ e.toString());
    }
    }
    }
      

  3.   

    import java.rmi.*;
    import java.rmi.registry.*;
    import java.rmi.server.*;public class rmi_server extends UnicastRemoteObject implements rmi_interface
    {
    public static void main(String args[])
    {
    if (args.length!=2)
    {
    System.err.println("Syntax:Flip<true|false><port>");
    System.err.println();
    System.err.println("true demarcates to start RMI Regsitry,"+"false demarcates to bind to existing one.");
    System.err.println("port is the port # for Rmi Rgistry.");
    System.exit(-1);
    }

    int port = new Integer (args[1]).intValue();
    Registry reg =null;
    try
    {


    if (args[0].equals("true"))
    {
    reg=LocateRegistry.createRegistry(port);
    System.out.println("Successfully created registry.");
    }
    else
    {
    reg=LocateRegistry.getRegistry(port);
    System.out.println("Connected to existing registry.");
    }

    rmi_server rmis=new rmi_server(reg);

    }catch(Exception e)

    {System.out.println(e.toString());}

    }

    public rmi_server(Registry reg)throws Exception,RemoteException
    {
    super();
    reg.rebind("rmi_server",this);
    System.out.println("rmi_server object bound.");


    public int flip(int i) throws RemoteException
    {
    return i*-1;
    }
    }