Tôi cho rằng nếu tôi đặt -Djava.rmi.server.hostname = localhost nó nên chỉ được lắng nghe trên 127.0.0.1
số
Tôi có hiểu lầm gì java.rmi.server.hostname điều khiển?
Có. java.rmi.server.hostname
không có gì liên quan đến địa chỉ IP mà đối tượng từ xa đang nghe. Đó được xác định bởi RMIServerSocketFactory.
Để sửa sự dẫn chứng sai từ cuốn sách của tôi trong câu trả lời khác (sau đó bị xóa): string
java.rmi.server.hostname:
Hostname; giá trị mặc định là địa chỉ IP của máy chủ cục bộ trong định dạng "chấm-quad" ... được nhúng vào các sơ đồ từ xa được tạo bởi JVM này khi các đối tượng từ xa được xuất khẩu. Điều này có thể được sử dụng để kiểm soát địa chỉ IP hiệu quả của các máy chủ RMI được xuất bởi các máy chủ đa nhiệm. Thuộc tính này được đọc chính xác một lần trong vòng đời của JVM. [1]
Để mở rộng trên đó, nó cũng có thể được sử dụng để kiểm soát địa chỉ IP hiệu quả (máy khách nhìn thấy) của máy chủ RMI được xuất bởi máy chủ phía sau thiết bị NAT. Nó không nhất thiết phải liên quan đến máy chủ lưu trữ cục bộ, ví dụ: trong các tình huống NAT và có thể là tên máy chủ, địa chỉ IPv4 rải rác, hoặc địa chỉ IPv6.
[1] Pitt & McNiff, java.rmi, The Remote Method Invocation Hướng dẫn, Addison Wesley 2001, p.258.
0.0.0.0 cũng được lặp lại. Có lẽ nó bị lẫn lộn bởi vì chúng giống nhau. (Tôi không biết sự khác biệt là gì) Bạn đã thử '-Djava.rmi.server.hostname = 127.0.0.1' –
@PeterLawrey No. Không có gì để làm với nó. Xem câu trả lời của tôi. – EJP