RMI ohne Kommandozeileneingabe

Status
Nicht offen für weitere Antworten.

K-Man

Bekanntes Mitglied
Hallo.
Ist es möglich, eine RMI-Anwendung(Server) zu starten, ohne die lästigen Kommandozeilenbefehle eingeben zu müssen?

Soviel ich weiß, kann muss man Stub und Skeleton noch "per Hand" (rmic) erzeugen.

Die registry kann mit "LocateRegistry.createRegistry(1099);" gestartet werden.

Die CodeBase und die policy geb ich wie folgt ein...

System.setProperty( "java.rmi.server.codebase", K:\\XXX );
System.setProperty( "java.security.policy", "K:\\XXX\\java.policy" );

Jetzt kommt noch ein Fehler:

java.net.MalformedURLException: unknown protocol: k

Kann mir vielleicht jemand helfen? Oder hat einer einen Beispielcode, wie ich den Server ohne Kommandozeileneingaben starten kann?
 
Ok jetzt ist es irgendwei gegangen. Man muss aber file/...verwenden :lol:
Danke
Jetzt heißt es dann aber ab und zu, dass der Port schon benutzt wird. Wie kann ich das umgehen? Ich benutze rebind zum registrieren der Objekte..
 
Ach ja. Wie geht die file:/-Angabe unter Unix?
Irgendwie findet er da die policy-Datein nicht.
Also ich habs ua mit file:/home/user/xxx/java.policy probiert, aber es kommt die Fehlermeldung, die man erhält wenn man keine policy-file hat...
 
Hat nicht geklappt. Hier mal mein Code
Code:
String codebase = "file:///home/user/Documents/engine/";
System.setProperty("java.rmi.server.codebase", codebase);
System.setProperty("java.security.policy", "file:///home/user/Documents/engine/java.policy");
System.setSecurityManager(new RMISecurityManager());
 
Also falls es nicht jeder verstanden hat. Ich bekomme folgende Fehlermeldung:

access denied (java.net.SocketPermission 127.0.0.1:1099 connect,resolve)
java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:1099 connect,resolve)

Irgendwie findet er die java.policy nicht. Stub findet er, also müsste der Eintrag mit der Codebase stimmen.
 
K-Man hat gesagt.:
Irgendwie findet er die java.policy nicht. Stub findet er, also müsste der Eintrag mit der Codebase stimmen.
Hast du jetzt endlich das file:// aus java.security.policy entfernt oder nicht?
Es muss funktionieren, wenn die Datei vorhanden ist.
 
Jetzt geht es. Also man braucht schon "file:///"

Irgendwie ist es am Anfang doch nicht gegangen, aber jetzt gehts 😀

Bin jetzt um einige Erfahrungen schlauer. Ua war zB im Server die hosts-Datei fehlerhaft. Deswegen konnte der Clients keine Verbingung aufbauen. Die Stubs wurden zwar erfolgreich vom Server geladen, aber die umgekehrte Verbingung war deswegen nicht möglich.

Danke für eure Hilfe 😀
 
Status
Nicht offen für weitere Antworten.

Zurück
Oben