RMI(java.net.ConnectException: Connection refused: connect)

Ich versuche meinen server mit dem Namen SampleServer. Ich bin mit windows und das ist, was ich getan habe:

in cmd:

javaw rmiregistry 1099
cd C:\Users\Home\workspace\RMI\src
java -Djava.security.policy=policy SampleServer 1099

bekomme ich die folgende Fehlermeldung:

binding //localhost:1099/Sample
New instance of Sample created
Sample server failed:Connection refused to host: localhost; nested exception is:

        java.net.ConnectException: Connection refused: connect

Ich habe versucht, mit einem anderen port # wie 4719 für rmiregistry, aber ich die gleiche Fehlermeldung erhalten. Ich stellte sicher, dass meine firewall war deaktiviert, aber das problem weiterhin besteht. Ich stellte sicher, dass der port nicht bereits verwendet wird. Ich hoffe wirklich, dass mir jemand helfen kann.

Bild von meinem desktop mit Ordner des Projekts, eclipse-Fenster angezeigt und cmd öffnen:
http://s22.postimg.org/uq00qzslr/picyture.png

Code:

SampleServer:

import java.rmi.Naming;
import java.rmi.RemoteException;
import java.rmi.RMISecurityManager;
import java.rmi.server.UnicastRemoteObject;

public class SampleServer {
    public static void main(String args[]) {
        if (args.length != 1) {
            System.err.println("usage: java SampleServer rmi_port");
            System.exit(1);
        }
        //Create and install a security manager
        if (System.getSecurityManager() == null)
            System.setSecurityManager(new RMISecurityManager());
        try {
            //first command-line argument is the port of the rmiregistry
            int port = Integer.parseInt(args[0]);
            String url = "//localhost:" + port + "/Sample";
            System.out.println("binding " + url);
            Naming.rebind(url, new Sample());
            //Naming.rebind("Sample", new Sample());
            System.out.println("server " + url + " is running...");
        }
        catch (Exception e) {
            System.out.println("Sample server failed:" + e.getMessage());
        }
    }
}

SampleClient:

import java.rmi.Naming;
import java.rmi.RemoteException;

public class SampleClient  {
    public static void main(String args[]) {
        try {
            if (args.length < 3) {
                System.err.println("usage: java SampleClient host port string... \n");
                System.exit(1);
            }

            int port = Integer.parseInt(args[1]);
            String url = "//" + args[0] + ":" + port + "/Sample";
            System.out.println("looking up " + url);

            SampleInterface sample = (SampleInterface)Naming.lookup(url);

            //args[2] onward are the strings we want to reverse
            for (int i=2; i < args.length; ++i)
                //call the remote method and print the return
                System.out.println(sample.invert(args[i]));
        } catch(Exception e) {
            System.out.println("SampleClient exception: " + e);
        }
    }
}

SampleInterface:

import java.rmi.Remote;
import java.rmi.RemoteException;

public interface SampleInterface extends Remote {
    public String invert(String msg) throws RemoteException;
}

Beispiel:

import java.rmi.Remote;
import java.rmi.RemoteException;
import java.rmi.server.*;

//this is the class with remote methods

public class Sample
  extends UnicastRemoteObject
  implements SampleInterface {

    private int a;

    public Sample() throws RemoteException {
    System.out.println("New instance of Sample created");
    a = 1;
    }

    public String invert(String m) throws RemoteException {
        //return input message with characters reversed
        System.out.println("invert("+m+") a=" + a);
        return new StringBuffer(m).reverse().toString();
    }
}

Politik:

grant {
    permission java.security.AllPermission;
};
InformationsquelleAutor user2644819 | 2013-10-26
Schreibe einen Kommentar