我正在尝试将在本地计算机上运行的 JVisualVM 连接到运行 WildFly 服务器(具体来说,版本 8.1.0)的远程计算机。
我自己没有配置 WildFly 服务器,我也不知道是谁配置的,但我知道我可以通过将浏览器指向以下位置以管理用户身份从本地计算机登录:
https://[ip address of the remote machine]:9443/console
请注意,它是https,而不是普通的http,并且其端口已设置为9443(我认为默认值是8080或9990或其他...... . IDK,我在网上看到了很多端口号。我被明确告知这个 WildFly 服务器禁用了 http)。
我可以通过 SSH 连接到远程计算机。我可以导航到 WildFly 的 bin
目录并运行 jboss-client.sh
。我必须连接端口 9999 (我认为默认端口是 9990?)
我将 jboss-client.jar
(在 bin/client
下)复制到本地计算机,并从命令行运行 JVisualVM,如下所示:
.\jvisualvm.exe -cp:a C:\[path to]\jboss-client.jar
启动正常。 文件>添加远程主机
:然后我输入了IP。 确定
。我在树中的“远程”下右键单击它,然后选择“添加 JMX 连接”。我输入了
service:jmx:http-remoting-jmx://[ip]:9999
我勾选了我想要使用安全凭证并输入了用户名和密码。勾选以保存安全凭证。未选中“不需要 SSL 连接”。点击确定
。它立即吐出消息
Cannot connect to
admin@service:jmx:http-remoting-jmx://[ip]:9999
usingservice:jmx:http-remoting-jmx://[ip]:9999
我还尝试了端口 9443、9990 和 8080。这些都不起作用。我尝试在协议(protocol)名称中使用 https 而不是 http。这也行不通。
我错过了什么?我可以访问控制台并连接 jboss-client.sh,但无法使用 JVisualVM,这是怎么回事?我可以在某处使用一些日志来查看问题所在吗?也许有人可以指出我在某处遗漏的配置?
不确定这是否重要,但我的本地计算机正在运行安装了 JDK8 的 Windows 10。 WildFly 服务器在 CentOS 6.3 上使用 Java 6。
最佳答案
您需要将jboss-client.jar
(或jboss-cli-client.jar
)添加到JVisualVM 的类路径中。该库可以在 WildFly 安装的 bin/client
目录中找到。
我使用以下命令将库添加到类路径中。
jvisualvm --cp:a ~/servers/wildfly-10.0.0.Final/bin/client/jboss-client.jar
然后我使用 service:jmx:remote+http://[ip]:[port]
并能够连接。
关于java - 将 JVisualVM 连接到远程 Wildfly 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36946903/