RMI Server Problem bei RedHat

bseidel

Grünschnabel
Hallo zusammen,

ich suche schon seit Tagen nach einer Lösung aber vergebens. Ich habe eine Client/Server Anwendung per RMI geschrieben. Klappt auch soweit gut wenn kein RedHat Linux verwendet wird. In meinen Fall ist ein Server mit RedHat (Darf ich auch nicht ändern) und dieser gibt an den Client keine Daten zurück. Sprich, am Server sehe ich per RMI log das der Client ein Remote Lookup macht aber dann passiert nichts, auch keine Exceptions. Der Client schmeisst eine RemoteException aber auch nur wegen dem Timeout (nach drei Sekunden darf er Ruhig) den ich eingebaut habe.
Wenn ich den Server auf einen anderen Rechner mit Windows XP, Windows 7 oder OpenSuse laufen lasse funktioniert alles Wunderbar. Wenn ich den RedHat als Client auf einen anderen Server einen Lookup machen lasse funktioniert auch alles.
Im Oracle Forum habe ich ein Thread vom 2005 gelesen das RedHat speziell ist und das JDK braucht, also installiert und auch konfiguriert (/usr/sbin/alternative --config) aber leider auch vergebens.

Nochmal zusammengefast:
- RedHat als Server: Remote Lookup vom Client aber keine Ausführung der entfernten Methode
- Anderer Rechner (Xp, 7, OpenSuse) als Server: Alle Clients, auch der RedHat als Client, funktionieren Prima

Was habe ich bereits am RedHat ausprobiert/überprüft:
- Firewall war vom Werk aus deaktiviert, aktiviert und den Port 1099 freigeschaltet (Obwohl die Kommunikation eigentlich laufen muss weil ich den remote Lookup sehe)
- JDK 1.7.0_21 installiert und konfiguriert

Ich bin mit mein Latein am Ende und hoffe das jemand von Euch noch eine Idee oder Lösung hat.


Gruß,
Björn
 
Ich verstehe deine Frage nicht genau. Meinst du "Registry.REGISTRY_PORT" oder meinst du die alternative config unter RedHat?
 
Du brauchst doch eine RMI-Registry, oder? Diese muss aus dem selben JDK stammen, wie der ausführende Java Code.

Grüße
gore
 
Zuletzt bearbeitet:
Ich glaub ich steh auf dem Schlauch.

Ich erstell mir so eine Registry
Code:
LocateRegistry.createRegistry(Registry.REGISTRY_PORT);

Und in Eclipse habe ich für das Projekt die JRE von dem JDK Pfad ausgewählt.
 
ok, d.h. Dein Serverprozess fährt die selbst hoch?

versuch mal bitte folgendes :

1. JAVA_HOME variable in der Shell manuell auf das Oracle-JDK setzen
2. PATH=$JAVA_HOME/bin:$PATH
3. Deinen Server aus der Shell starten

evtl. zieht der Classloader die Klassen aus dem falschen Pfad.

dann

netstat -an | grep 1099

dort müsste die PID Deines Java-Prozesses stehen

Grüße,
gore
 

Neue Beiträge

Zurück