Sądziłem, że jeśli ustawić -Djava.rmi.server.hostname = localhost należy słuchać tylko na 127.0.0.1
nr
jestem nieporozumienie co kontrolki java.rmi.server.hostname?
Tak. java.rmi.server.hostname
nie ma nic wspólnego z tym, na jaki adres IP słuchany jest obiekt zdalny. Która jest określana przez RMIServerSocketFactory.
Aby poprawić błędny cytat z mojej książki w innym odpowiedzi (następnie usunięty):
java.rmi.server.hostname:
hosta smyczkową; wartością domyślną jest adres IP hosta lokalnego w formacie "wykropkowanym-kwadratowym", który jest osadzony w zdalnych skrótach utworzonych przez tę maszynę JVM podczas eksportowania obiektów zdalnych. Może to służyć do kontrolowania efektywnego adresu IP serwerów RMI wyeksportowanych przez hosty wieloadresowe. Ta właściwość jest czytana dokładnie raz w życiu JVM. [1]
Aby się rozwinąć, można go również wykorzystać do kontrolowania efektywnego adresu IP (widziane przez klientów) serwerów RMI wyeksportowanych przez hosty znajdujące się za urządzeniami NAT. Nie musi to mieć nic wspólnego z lokalnym hostem, np. w sytuacjach NAT i może to być nazwa hosta, adres IPv4 z kropkowanymi czterema adresami lub adres IPv6.
[1] Pitt & McNiff, java.rmi, Remote Method Invocation Przewodnik, Addison Wesley 2001, p.258.
0.0.0.0 jest również powrotem pętli. Być może staje się zdezorientowany, ponieważ są bardzo podobne. (Nie wiem, na czym polega różnica) Czy próbowałeś '-Djava.rmi.server.hostname = 127.0.0.1'' –
@PeterLawrey No. Nic z tym wspólnego. Zobacz moją odpowiedź. – EJP