Programmierung: Java RMI - Remote Method Invocation

bagotios
Mausschubser
Mausschubser
Beiträge: 72
Registriert: 1. Dez 2004 15:54

Programmierung: Java RMI - Remote Method Invocation

Beitrag von bagotios »

Hallo,

ich habe ein Problem mit Java RMI. Und zwar kann ich den Server nicht an die RMI-Registy binden. Die RMI-Registry ist gestartet, der Aufruf des Server sieht wir folgt aus:

Code: Alles auswählen

java -Djava.rmi.server.codebase=file://c:/tk1-uebung2/bin/ -Djava.security.policy=server.policy tk1.ex2.server.Server
Die server.policy liegt dabei im den Verzeichnis von dem aus ich versuche den Server zu starten und sieht wir folgt aus:

Code: Alles auswählen

grant {
    permission java.security.AllPermission;
};
Dabei bekomme ich nun eine java.security.AccessControlException: acces denied (java.io.FilePermission \\c\tk1-uebung2\bin read)

Hat das Problem noch jemand oder eine Ahnung wie man es behebt? Ich sitze nun schon den zweiten Tag dran und alle Tutorials die ich finde gehen mit kaum einem Wort auf die codebase oder auf die policy ein.

Gruß
Daniel

bagotios
Mausschubser
Mausschubser
Beiträge: 72
Registriert: 1. Dez 2004 15:54

Re: Programmierung: Java RMI - Remote Method Invocation

Beitrag von bagotios »

Habe das Problem gefunden. Der Aufruf muss sein:

Code: Alles auswählen

java -Djava.rmi.server.codebase=file:\\\\c:\\tk1-uebung2\\bin\\ -Djava.security.policy=server.policy tk1.ex2.server.Server
Ich vermute für ein Linux wäre der Aufruf mit den '/' richtig gewesen :)

Gruß
Daniel

Benutzeravatar
sproksch
Computerversteher
Computerversteher
Beiträge: 346
Registriert: 15. Apr 2004 17:56

Re: Programmierung: Java RMI - Remote Method Invocation

Beitrag von sproksch »

Also wir hatten auch mittelschwere Probleme mit irgendwelchen Zugriffsrechten, im Endeffekt haben wir die einfach dadurch behoben, dass wir den SecurityManager weggelassen haben, dann spart man sich den ganzen Krams mit den Policy Files und sonstigen Einstellungen bezüglich der Zugriffsrechte.

bagotios
Mausschubser
Mausschubser
Beiträge: 72
Registriert: 1. Dez 2004 15:54

Re: Programmierung: Java RMI - Remote Method Invocation

Beitrag von bagotios »

Wenn ihr die Programme aber nicht auf ein und der selben VM ausführt werdet ihr die Codebase brauchen und die benutzt standardmäßig eben einen SecurityManager. Also ihn einfach wegzulassen halte ich für keine gute Idee. Siehe dazu auch: http://www.kedwards.com/jini/codebase.html

Im Grunde ist das mit der Policy und der Codebase auch kein Problem, man muss halt nur wissen, dass die Slashes auf einem Windowssystem nicht funktionieren. Wer damit Probleme hat kann ja hier posten, evtl. kann ich we weiterhelfen.

Benutzeravatar
sproksch
Computerversteher
Computerversteher
Beiträge: 346
Registriert: 15. Apr 2004 17:56

Re: Programmierung: Java RMI - Remote Method Invocation

Beitrag von sproksch »

Wir haben unser Tool mit zwei Computern über Netzwerk getestet. Läuft.

Benutzeravatar
Prom
Computerversteher
Computerversteher
Beiträge: 344
Registriert: 5. Jan 2004 21:43

Re: Programmierung: Java RMI - Remote Method Invocation

Beitrag von Prom »

Habt es jemand geschafft die Security Policy über Eclipse einzubinden? Da gibt es zwar ein Feld für Java VM Aufrufe, aber das geht bei mir nicht... vielleicht ist es für was anderes gedacht...

bagotios
Mausschubser
Mausschubser
Beiträge: 72
Registriert: 1. Dez 2004 15:54

Re: Programmierung: Java RMI - Remote Method Invocation

Beitrag von bagotios »

Prom hat geschrieben:Habt es jemand geschafft die Security Policy über Eclipse einzubinden? Da gibt es zwar ein Feld für Java VM Aufrufe, aber das geht bei mir nicht... vielleicht ist es für was anderes gedacht...
Ja habe ich.

1) rmiregistry in der Windowskonsole starten
2) PolicyFile irgendwo im Projekt ablegen
3) Java VM Argumente in Eclipse: -Djava.rmi.server.codebase=file:\\\\c:\\...\\bin\\ -Djava.security.policy=c:\\...\\server.policy

Wie der PolicyFile aussieht steht ja weiter oben. Unter Windows sind die doppelten Backslashes wichtig. Der Pfad muss stimmen und ein Verzeichnis muss mit dem doppelten Backslash abgeschlossen sein. Alternativ gibt es noch ein Programm namens RMI Spy.

Antworten

Zurück zu „Archiv“