首页 > 解决方案 > 在 Java 11 上运行的 Java Mission Control 7 无法使用“jmx:remoting-jmx”协议连接到 Wildfly

问题描述

据我所知,我在这里描述了同样的问题: https ://developer.jboss.org/thread/278895

(该论坛已关闭,不允许额外评论,他们的建议是发布到 SO)

我正在尝试在我的工作站上的 OpenJDK 64 位服务器 VM Corretto-11.0.8.10.1(构建 11.0.8+10-LTS,混合模式)上运行 JMC 7.1.2,并使用“jmx”连接到远程 Wildfly 服务器:remoting-jmx" 协议。这工作了多年,但 AFAICT 在 Java-11 和 JMC7 星座中不起作用。

没有关于未知协议或类似协议的错误(是的,我已经阅读并遵循以下说明: 将 Java Mission Control 连接到 Wildfly 16),但连接时出现此错误:

org.openjdk.jmc.rjmx.ConnectionException caused by javax.security.sasl.SaslException: org/ietf/jgss/GSSManager [Caused by java.lang.NoClassDefFoundError: org/ietf/jgss/GSSManager]
    at org.openjdk.jmc.rjmx.internal.RJMXConnection.connect(RJMXConnection.java:441)
    at org.openjdk.jmc.rjmx.internal.ServerHandle.doConnect(ServerHandle.java:116)
    at org.openjdk.jmc.rjmx.internal.ServerHandle.connect(ServerHandle.java:106)
    at org.openjdk.jmc.console.ui.editor.internal.ConsoleEditor$ConnectJob.run(ConsoleEditor.java:99)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Caused by: javax.security.sasl.SaslException: org/ietf/jgss/GSSManager [Caused by java.lang.NoClassDefFoundError: org/ietf/jgss/GSSManager]
    at org.jboss.remoting3.remote.ClientConnectionOpenListener$Capabilities.handleEvent(ClientConnectionOpenListener.java:426)
    at org.jboss.remoting3.remote.ClientConnectionOpenListener$Capabilities.handleEvent(ClientConnectionOpenListener.java:242)
    at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92)
    at org.xnio.conduits.ReadReadyHandler$ChannelListenerHandler.readReady(ReadReadyHandler.java:66)
    at org.xnio.nio.NioSocketConduit.handleReady(NioSocketConduit.java:89)
    at org.xnio.nio.WorkerThread.run(WorkerThread.java:591)
    at ...asynchronous invocation...(Unknown Source)
    at org.jboss.remoting3.EndpointImpl.connect(EndpointImpl.java:599)
    at org.jboss.remoting3.EndpointImpl.connect(EndpointImpl.java:561)
    at org.jboss.remoting3.EndpointImpl.connect(EndpointImpl.java:549)
    at org.jboss.remotingjmx.RemotingConnector.internalRemotingConnect(RemotingConnector.java:268)
    at org.jboss.remotingjmx.RemotingConnector.internalConnect(RemotingConnector.java:156)
    at org.jboss.remotingjmx.RemotingConnector.connect(RemotingConnector.java:103)
    at org.openjdk.jmc.rjmx.internal.RJMXConnection.connectJmxConnector(RJMXConnection.java:487)
    at org.openjdk.jmc.rjmx.internal.RJMXConnection.establishConnection(RJMXConnection.java:464)
    at org.openjdk.jmc.rjmx.internal.RJMXConnection.connect(RJMXConnection.java:434)
    ... 4 more
Caused by: java.lang.NoClassDefFoundError: org/ietf/jgss/GSSManager
    at java.base/java.lang.Class.getDeclaredConstructors0(Native Method)
    at java.base/java.lang.Class.privateGetDeclaredConstructors(Class.java:3137)
    at java.base/java.lang.Class.getConstructor0(Class.java:3342)
    at java.base/java.lang.Class.getConstructor(Class.java:2151)
    at java.base/java.security.Provider.newInstanceUtil(Provider.java:153)
    at java.base/java.security.Provider$Service.newInstance(Provider.java:1891)
    at org.wildfly.security.WildFlyElytronBaseProvider$ProviderService.newInstance(WildFlyElytronBaseProvider.java:218)
    at org.wildfly.security.sasl.util.SecurityProviderSaslClientFactory.createSaslClient(SecurityProviderSaslClientFactory.java:94)
    at org.wildfly.security.sasl.util.AbstractDelegatingSaslClientFactory.createSaslClient(AbstractDelegatingSaslClientFactory.java:66)
    at org.wildfly.security.sasl.util.ProtocolSaslClientFactory.createSaslClient(ProtocolSaslClientFactory.java:50)
    at org.wildfly.security.sasl.util.AbstractDelegatingSaslClientFactory.createSaslClient(AbstractDelegatingSaslClientFactory.java:66)
    at org.wildfly.security.sasl.util.ServerNameSaslClientFactory.createSaslClient(ServerNameSaslClientFactory.java:50)
    at org.wildfly.security.sasl.util.AbstractDelegatingSaslClientFactory.createSaslClient(AbstractDelegatingSaslClientFactory.java:66)
    at org.wildfly.security.sasl.util.ServerNameSaslClientFactory.createSaslClient(ServerNameSaslClientFactory.java:50)
    at org.wildfly.security.sasl.util.FilterMechanismSaslClientFactory.createSaslClient(FilterMechanismSaslClientFactory.java:102)
    at org.wildfly.security.sasl.util.AbstractDelegatingSaslClientFactory.createSaslClient(AbstractDelegatingSaslClientFactory.java:66)
    at org.wildfly.security.sasl.util.LocalPrincipalSaslClientFactory.createSaslClient(LocalPrincipalSaslClientFactory.java:76)
    at org.wildfly.security.sasl.util.PrivilegedSaslClientFactory.lambda$createSaslClient$0(PrivilegedSaslClientFactory.java:64)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at org.wildfly.security.sasl.util.PrivilegedSaslClientFactory.createSaslClient(PrivilegedSaslClientFactory.java:64)
    at org.wildfly.security.auth.client.AuthenticationConfiguration.createSaslClient(AuthenticationConfiguration.java:1496)
    at org.wildfly.security.auth.client.AuthenticationContextConfigurationClient.createSaslClient(AuthenticationContextConfigurationClient.java:408)
    at org.jboss.remoting3.remote.ClientConnectionOpenListener$Capabilities.handleEvent(ClientConnectionOpenListener.java:420)
    at org.jboss.remoting3.remote.ClientConnectionOpenListener$Capabilities.handleEvent(ClientConnectionOpenListener.java:242)
    at org.xnio.ChannelListeners.invokeChannelListener(ChannelListeners.java:92)
    at org.xnio.conduits.ReadReadyHandler$ChannelListenerHandler.readReady(ReadReadyHandler.java:66)
    at org.xnio.nio.NioSocketConduit.handleReady(NioSocketConduit.java:89)
    at org.xnio.nio.WorkerThread.run(WorkerThread.java:591)

如果我将 OpenJDK 8 与 JMC 7 一起使用,那么它可以工作(也就是说,我可以连接并读取使用 jdk11 创建的 jfr 文件),但这真的是让这个配置工作的唯一方法吗?

标签: javawildflyjava-11jmcjfr

解决方案


推荐阅读