2009-08-31 8 views
4

J'essaie d'exécuter un processus Java et d'activer les connexions à distance à l'aide de jconsole. Ajouter les paramètres suivants à la ligne de commande (avant la classe principale):Exécution d'un processus Java avec la gestion à distance activée

-Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote. authenticate=false 

utilisant netstat, je vois que la machine virtuelle Java est à l'écoute sur le port 9999:

tcp6  0  0 :::9999     :::*     LISTEN  16971/java 

cependant, lorsque je tente de se connecter avec jconsole localhost: 9999 Je reçois un message d'erreur disant que la connexion a échoué.

une idée?

Répondre

6

Il y a un espace entre "... jmxremote." et "authentifier" dans ce que vous avez entré ci-dessus. Si c'est un copier/coller, peut-être assurez-vous qu'il n'est pas là sur votre ligne de commande.

En outre, vous pouvez simplifier en désactivant SSL: -Dcom.sun.management.jmxremote.ssl = false

bien
+0

droite, sur les deux choses. l'espace a chamboulé les choses, et j'ai dû désactiver ssl pour le faire fonctionner. Merci. –

4

Etes-vous sûr que vous utilisez IPv6? Sinon, vous devriez préférer IPv4 pour votre service.

-Djava.net.preferIPv4Stack = true

+0

, qui est étrange. maintenant je reçois une nouvelle erreur (avec et sans le paramètre ipv4): Erreur: L'accès en lecture du fichier de mot de passe doit être restreint: /usr/lib/jvm/java-6-sun-1.6.0.12/jre/lib/management/ jmxremote.password –

+0

L'utilisateur exécutant le processus Java doit avoir un accès en lecture au fichier de mot de passe JMX. chmod 0600 /usr/lib/jvm/java-6-sun-1.6.0.12/jre/lib/management/jmxremote.password – cafebabe

+0

ipv4 n'était pas le problème, voir la réponse ci-dessous. –