itu menegaskan bahwa kutipan akhir Anda datang terlalu dini. Ini harus setelah parameter terakhir.
Trik ini berhasil untuk saya.
Saya melihat sesuatu yang menarik: ketika saya memulai aplikasi saya menggunakan baris perintah berikut:
java -Dcom.sun.management.jmxremote.port=9999
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.ssl=false
Jika saya mencoba menyambung ke port ini dari mesin jarak jauh menggunakan jconsole, sambungan TCP berhasil, beberapa data dipertukarkan antara jconsole jarak jauh dan agen jmx lokal tempat MBean saya digunakan, dan kemudian, jconsole menampilkan pesan kesalahan sambungkan. Saya melakukan pengambilan wireshark, dan itu menunjukkan pertukaran data yang berasal dari agen dan jconsole.
Jadi, ini bukan masalah jaringan, jika saya melakukan netstat -an dengan atau tanpa properti sistem java.rmi.server.hostname, saya memiliki binding berikut:
TCP 0.0.0.0:9999 0.0.0.0:0 LISTENING
TCP [::]:9999 [::]:0 LISTENING
Ini berarti bahwa dalam kedua kasus soket yang dibuat pada port 9999 menerima koneksi dari sembarang host di alamat mana pun.
Saya pikir konten properti sistem ini digunakan di suatu tempat pada koneksi dan dibandingkan dengan alamat IP sebenarnya yang digunakan oleh agen untuk berkomunikasi dengan jconsole. Dan jika alamat tersebut tidak cocok, koneksi gagal.
Saya tidak mengalami masalah ini saat menyambung dari host yang sama menggunakan jconsole, hanya dari host jarak jauh fisik yang sebenarnya. Jadi, saya kira pemeriksaan ini dilakukan hanya ketika koneksi datang dari "luar".