質問を書いたとき、少し失われて混乱しました。その間に私が学んだことがここにあります。通常、Tomcat Windowsサービスはローカルシステムアカウントで実行されます。それがすべての大騒ぎの主な理由です。
サービス設定のJVM設定で-Dcom.sun.management.jmxremote
と設定するだけで、JMX はとなります。同じJVMインスタンスで実行されるJMXクライアントがある場合(つまり、アプリケーション自体に焼き込まれているため)、のようにMBeanServer
を保持できます。ただし、JConsoleはこのTomcatプロセスをリストしません。ここではすべて説明します:https://blogs.oracle.com/nbprofiler/entry/monitoring_java_processes_running_as。
他のところで説明したように、これで十分でない場合は、-Dcom.sun.management.jmxremote.port=<port>
も設定する必要があります。次に、localhost:<port>
を使用してJConsoleを使用してJMXに接続できます。 Javaコードからは、次のコードを使用してこれを実現できます。
JMXServiceURL target = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:<port>/jmxrmi");
JMXConnector connector = JMXConnectorFactory.connect(target);
connector.getMBeanServerConnection();
これはローカルシステム管理者グループのユーザーを含むすべてのユーザーに当てはまりますか? –
ご意見ありがとうございます。答え:はい、一種です。私はこれを掘り起こすいくつかのことを学んだので、私自身の質問に答えます。 –