RMI über Internet

Status
Nicht offen für weitere Antworten.

Zilchinger

Mitglied
Hi@all,
ich habe zur Übung einen kleinen Client/Server-Chat programmiert.
Der läuft auch über das LAN ohne Probleme. Ich habe jedoch bei RMI-Anwendungen immer das Problem, das ich sie nie über das Internet zum Laufen bekomme.
Aus Testgründen, habe ich den Router entfernt, alle Firewalls abgeschaltet, die ich besitze, die RMIRegistry an verschiedenen Ports gestartet, jedoch alles ohne Erfolg.

Der Lookup nach dem RemoteObjekt funktioniert noch, wenn ich jedoch eine Methode aufrufen will, bekomme ich nach einer gewissen Zeit ein Connection timeout!!!
Woran kann das liegen?
Das Einzige was ich nicht verwendet habe ist der RMISecurityManager, da habe ich aber gelesen, das dieser nur relevant ist, wenn ich zb Klassen nachladen will, oder auf Files auf dem Server zugreifen will, das mache ich aber nicht. Wie gesagt, im LAN läuft alles problemlos.

Hat vielleicht noch jemand eine Idee, woran das liegen könnte?
Ich wäre sehr dankbar :D
 

Anselmus

Bekanntes Mitglied
hi,

wie hast du das denn über da netzwerk hinbekommen? bei geht das leider nicht... mein rmi server läuft unter debian/linux und der client unter win xp pro.

Code:
Naming.list()

funktioniert auf der clientseite noch...


aber wenn ich ein stub haben will kommt folgendes:

mit securitymanager:
Code:
HelloClient exception: access denied (java.net.SocketPermission 192.168.61.1:50000 connect,resolve)

java.security.AccessControlException: access denied (java.net.SocketPermission 192.168.61.1:50000 connect,resolve)

        at java.security.AccessControlContext.checkPermission(Unknown Source)

        at java.security.AccessController.checkPermission(Unknown Source)

        at java.lang.SecurityManager.checkPermission(Unknown Source)

        at java.lang.SecurityManager.checkConnect(Unknown Source)

        at java.net.Socket.connect(Unknown Source)

        at java.net.Socket.connect(Unknown Source)

        at java.net.Socket.<init>(Unknown Source)

        at java.net.Socket.<init>(Unknown Source)

        at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(Unknown Source)

        at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(Unknown Source)

        at sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown Source)

        at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source)

        at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source)

        at sun.rmi.server.UnicastRef.newCall(Unknown Source)

        at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)

        at java.rmi.Naming.lookup(Unknown Source)

        at clientside.HelloWinClient.main(HelloWinClient.java:42)

ohne security manager kommt folgendes:
Code:
HelloClient exception: error unmarshalling return; nested exception is:

        java.lang.ClassNotFoundException: serverside.HelloImpl_Stub (no security manager: RMI class loader disabled)

java.rmi.UnmarshalException: error unmarshalling return; nested exception is:

        java.lang.ClassNotFoundException: serverside.HelloImpl_Stub (no security manager: RMI class loader disabled)

        at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)

        at java.rmi.Naming.lookup(Unknown Source)

        at clientside.HelloWinClient.main(HelloWinClient.java:42)

Caused by: java.lang.ClassNotFoundException: serverside.HelloImpl_Stub (no security manager: RMI class loader disabled)

        at sun.rmi.server.LoaderHandler.loadClass(Unknown Source)

        at sun.rmi.server.LoaderHandler.loadClass(Unknown Source)

        at java.rmi.server.RMIClassLoader$2.loadClass(Unknown Source)

        at java.rmi.server.RMIClassLoader.loadClass(Unknown Source)

        at sun.rmi.server.MarshalInputStream.resolveClass(Unknown Source)

        at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)

        at java.io.ObjectInputStream.readClassDesc(Unknown Source)

        at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)

        at java.io.ObjectInputStream.readObject0(Unknown Source)

        at java.io.ObjectInputStream.readObject(Unknown Source)

        ... 3 more

hast du vielleicht ne ahnung?
 
G

Guest

Gast
Verwende den SecurityManger
Code:
System.setSecurityManager(new SecurityManager());
und eine entsprechende Policy-Datei dazu.
Um es einfach zu machen, zuerst mal ohne jegliche Einschränkungen
Code:
grant {
  permission java.security.AllPermission;
};
Aufruf des Servers und Clients dann mit
Code:
java -Djava.security.policy=./policy ....
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Erstelltes Programm über Internet Browser ausführen Netzwerkprogrammierung 26
V Einfachen Javaserver über das Internet erreichbar machen Netzwerkprogrammierung 2
P RMI Client Server Programm über Internet Netzwerkprogrammierung 2
T Socket Methoden über Internet aufrufen Netzwerkprogrammierung 1
S Socket Kommunikation über Internet Netzwerkprogrammierung 1
J Erster Server-Client läuft auf lokalem Rechner problemlos. Zwei Rechner über das Internet nicht Netzwerkprogrammierung 8
A Computer über Internet verbinden Netzwerkprogrammierung 12
C Verbindung zu einem Hostrechner über das Internet herstellen Netzwerkprogrammierung 15
P Socket Verbindung über das Internet Netzwerkprogrammierung 2
E Zwei PCs über das Internet miteinander verbinden? Netzwerkprogrammierung 3
E Socketverbindung über das Internet - Timeout? Netzwerkprogrammierung 28
E Java über Socket ins Internet? Netzwerkprogrammierung 4
V Verbindung zweier Rechner über das Internet mit Sockets Netzwerkprogrammierung 8
J Socket Erreichbarkeit eines Java Servers (Socket-Lösung) über das Internet Netzwerkprogrammierung 3
H Verbindungsproblem über das Internet Netzwerkprogrammierung 9
T Java Socket und ServerSocket über Internet-IP? Netzwerkprogrammierung 9
T Verbindung über das Internet Netzwerkprogrammierung 2
G RMI über internet, fettes problem Netzwerkprogrammierung 8
C Sockets über Internet Netzwerkprogrammierung 10
C Serverzugriff über Internet, Server in anderem Bussystem Netzwerkprogrammierung 9
K Tabelle im Web über Listener aufrufen Netzwerkprogrammierung 1
F Verbindung zu einem LDAP Server über Java Netzwerkprogrammierung 4
S Socket Bilder über Socket Senden Netzwerkprogrammierung 0
B Zip Dateien über FTP laden Netzwerkprogrammierung 2
x46 byte[] über BufferedReader auslesen Netzwerkprogrammierung 18
E Socket Parameter über Sockets übergeben und auslesen ! Netzwerkprogrammierung 5
L Webbasierte Anwendung - Authentifizierung über LDAP/ActiveDirectory Netzwerkprogrammierung 5
J Probleme mit Multicast über IPv6, DatagramChannel Netzwerkprogrammierung 1
S Daten über TCP/IP senden Netzwerkprogrammierung 3
T Broadcast-message über spez. Netzwerk-Schnittstelle Netzwerkprogrammierung 1
T Mikrofonaudio über Java Server an Webbrowser streamen Netzwerkprogrammierung 13
T VPN-Verbindung über Java Netzwerkprogrammierung 4
J FTP Upload über Proxy funktioniert nicht Netzwerkprogrammierung 1
E Kurze Textnachrichten über einen Server von meinem Handy auf den Computer laden. Netzwerkprogrammierung 9
J FTP FTP Zugriff über Proxy Server Netzwerkprogrammierung 1
Thallius Java Application über ZScaler benutzer? Netzwerkprogrammierung 0
J Chat Server starten über GUI problem Netzwerkprogrammierung 4
V einfaches hin und her von Text über Server Netzwerkprogrammierung 2
antonbracke Multiuser Software über XMPP Server Netzwerkprogrammierung 1
Z Verbindung zwischen 2 Rechnern über ServerSockets nicht möglich Netzwerkprogrammierung 3
cezary Socket ServerSocket starten über GUIIm unterstehenden Code versuche Netzwerkprogrammierung 6
I ASCII über serielle Schnittstelle Netzwerkprogrammierung 1
N RMI "RMI über Lan funktioniert nicht" & "RMI-Server im Lan scannen" Netzwerkprogrammierung 13
L Mit Java über PHP in MySQL anmelden (Login script) Netzwerkprogrammierung 3
M Socket String Arrays über Socket an Server schicken Netzwerkprogrammierung 2
X Problem mit vielen Bytes über Socket Netzwerkprogrammierung 23
K ByteArray über Netzwerk senden klappt nicht Netzwerkprogrammierung 5
M allgemeine Frage über Server-Client-Kommunikation Netzwerkprogrammierung 5
P RMI Threads die über RMI auf Datenbank zugreifen Netzwerkprogrammierung 2
S Datei schreiben über Applet Netzwerkprogrammierung 8
G Klassen über Netzwerk kommunizieren lassen Netzwerkprogrammierung 6
Kjubert Synchronisieren von Objekten über Client/Server - bester Weg? Netzwerkprogrammierung 7
S ImageIcon über Socket schicken (Serialisierung) Netzwerkprogrammierung 6
H Socket Objekte über Socket? Allgemeine Verständnisprobleme in Sachen Socket Netzwerkprogrammierung 3
S Seltsames Verhalten beim Empfangen von Daten über DataInputStream Netzwerkprogrammierung 12
A TCP über UDP Verbindung? Netzwerkprogrammierung 10
C Datei über Socket schreiben und Ereignis lesen Netzwerkprogrammierung 9
D Socket Class über Netzwerk verschicken Netzwerkprogrammierung 2
D JNLP über Webstart funktioniert nicht... Netzwerkprogrammierung 2
J Socket Dateien über Socket auf Server speichern Netzwerkprogrammierung 3
D Socket Datei nur stückweise über Socket verschicken Netzwerkprogrammierung 6
G Bild über Socket schicken - Client/Server Netzwerkprogrammierung 10
N über Java in eine Text-Datei auf einem Server schreiben Netzwerkprogrammierung 2
c_sidi90 ideale Lösung, Screen Capture über Netzwerk Netzwerkprogrammierung 3
S Socket Verschiedene Exceptions beim Übertragen von Bildern über Socket Netzwerkprogrammierung 20
T ArrayList über Netzwerk senden! Netzwerkprogrammierung 5
N Problem über http eine Datei zu senden Netzwerkprogrammierung 4
T Verbindungsversuche über TCP Sockets von mehreren Threads führt zu Serverabsturz Netzwerkprogrammierung 2
V Authentifikation über mehrere Server? Netzwerkprogrammierung 3
M Map über Webservice übertragen Netzwerkprogrammierung 3
D Mehrere Clients über Java-Sockets Netzwerkprogrammierung 13
Z Socket Connection reset by peer nur per IP nicht über localhost Netzwerkprogrammierung 13
ruffio1978 Telnet über ein socket ansprechen Netzwerkprogrammierung 8
F Socket Verbindungen über mehrere Server Netzwerkprogrammierung 4
U Datei über das Netzwerk einlesen und speichern Netzwerkprogrammierung 8
G Klassen über JMX per URLClassloader laden? Netzwerkprogrammierung 2
M Socket Bilder über das Netzwerk übertragen Netzwerkprogrammierung 4
F Socket Daten über verschiedene IP's schicken Netzwerkprogrammierung 5
M Socket JavaProg über einen Clienten steuern Netzwerkprogrammierung 5
M Mail über Exchange versenden Netzwerkprogrammierung 13
F C/S über HTTPS Netzwerkprogrammierung 2
D ...class.getResourceAsStream("/meine.properties") funktioniert nicht über RMI? Netzwerkprogrammierung 3
M ganymed-ssh2.har: ftp-Verbindung über ftp-Proxy Netzwerkprogrammierung 2
J Probleme bei RSA mit byte[] bei Versand über RMI Netzwerkprogrammierung 2
Z File über Socket lesen Netzwerkprogrammierung 3
A HTTP Binärdaten über PHP-Skript in Datenbank schreiben bzw auslesen Netzwerkprogrammierung 2
M Objekt über Object-Stream, empfange "alte" Daten Netzwerkprogrammierung 2
P FTP isFile() über FTP Netzwerkprogrammierung 3
I Socket HTTP Nachrichten über Sockets verschicken Netzwerkprogrammierung 2
N String als byte Array über Socket versenden Netzwerkprogrammierung 8
M Objekt über socket senden/empfangen Netzwerkprogrammierung 3
N Socket File über Socket vom Server an Client versenden Netzwerkprogrammierung 15
P Socket Problem mit Netzwerkverbindung über TCP Netzwerkprogrammierung 12
A UCP Connection über Proxy möglich? Netzwerkprogrammierung 7
F Char über Netzwerk senden Netzwerkprogrammierung 6
S HTTP Login mit CAS Authentisierung über SSL Netzwerkprogrammierung 2
C Befehle über ein GUI an Server senden Netzwerkprogrammierung 15
M Socket Datei über Socket versenden Netzwerkprogrammierung 5
I Objekte über das Netzwerk Netzwerkprogrammierung 5
M Google Translate über Java ansprechen? Netzwerkprogrammierung 13

Ähnliche Java Themen


Oben