質問: 現象 -- WindowsクライアントからJBoss EAPで稼働しているJVMをJConsoleから監視したいが、service:jmx:remoting-jmx://サーバーIP:4447へ接続できませんでした となる。 サーバー上でポートを確認 `netstat -ano | grep 4447` し、ポートが開いていることを確認している。firewallは開発環境であるため無効にしている。 手順 -- [RedHat Customer Portal - ドメインモードで JConsole から JBoss に接続する](https://access.redhat.com/ja/solutions/2402771 "ドメインモードで JConsole から JBoss に接続する") の手順に従い、JBossの設定を変更した。 JBossはリモートのサーバー上(linux 64bit)で動作しており、クライアントはWindows 10 64bit。 クライアントのJDK(1.8)に含まれるjconsole.exeを実行し、 ログインは `service:jmx:remoting-jmx://サーバーIP:4447` を指定し、ユーザーID/パスワードを指定した。
回答: JConsoleがJMXへ接続する方法がベンダ固有のものとなるため、JConsoleに対してライブラリを指定しなくてはなりません。 batファイル等でJBossのライブラリを指定することで接続可能になる。 ``` set JBOSS_HOME=jbossのインストールディレクトリ set JAVA_HOME=JREへのパス set CLASSPATH=%JAVA_HOME%\lib\jconsole.jar set CLASSPATH=%CLASSPATH%;%JAVA_HOME%\lib\tools.jar set CLASSPATH=%CLASSPATH%;%JBOSS_HOME%\bin\client\jboss-cli-client.jar %JAVA_HOME%\bin\jconsole -J-Djava.class.path=%CLASSPATH% ``` 参考資料: [Remote JMX access to WildFly using JConsole](https://dzone.com/articles/remote-jmx-access-wildfly-or "Remote JMX access to WildFly (or JBoss AS7) using JConsole")