Używam Tomcat 6 na serwerze Linux w chmurze Amazon. Próbuję połączyć się z nim za pomocą VisualVM z mojego komputera Mac w moim biurze. Pozwoliłem otworzyć wszystkie porty TCP między moim pulpitem a serwerem, ale nie jestem w stanie przekonać VisualVM do zrobienia czegokolwiek.Debugowanie zdalnego połączenia VisualVM
Na polu linux, zacząłem Tomcat z:
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9191
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
Na moim Mac, ja uruchomić VisualVM i wybierz File -> New Connection JMX ...
wejdę amazonhostname.com: 9191 w pudełku. Jest napisane "Dodawanie amazonhostname.com:9191 ..." i siedzi tam przez kilka minut, zanim upłynie limit czasu.
Z mojego komputera Mac, mogę "telnet amazonhostname.com 9191" w porządku, a ja spróbowałem innych losowych portów i wszystkie zadziałały. Jestem przekonany, że to nie jest problem z firewallem, chyba że muszę otworzyć UDP lub ICMP lub coś w tym stylu. (Naprawdę ??)
Nie ma nic w catalina.log na serwerze lub konsoli systemowej na moim Macu, związane z jmx. netstat na serwerze pokazuje 9191 i kilka innych portów otwartych na wszystkich interfejsach.
Na serwerze zdalnym nie ma pliku jstatd. Czy jest to warunek wstępny dla JMX? (Jestem zupełnie nowy w Javie i nie jestem nawet pewien, co to znaczy, ale widziałem to gdzieś na blogu.) Teraz łapię się za słomkę.)
Czy upewniłeś się, że iptables nie blokuje połączenia w twoim Linux-ie? EDYCJA: Widzę, możesz telnetu - okej, zrób to. –
Inną rzeczą, na którą musisz zwrócić uwagę, jest nazwa hosta RMI - spójrz na: http://stackoverflow.com/questions/9985293/how-do-i-use-jconsole-to-connect-to-ec2 –
Jstatd nie jest potrzebne. Greg zasugerował, aby spróbować dodać do argumentów JVM Tomcat -Djava.rmi.server.hostname = the.public.ip. –