我不是开发人员,因此在阅读以下消息时请记住这一点:
我需要能够使用 Windows PowerShell 连接到主机上的 JMX RMI 代理,这可能吗?
我得到的来自 java 客户端的示例字符串如下:
JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://localhost:7979/jmxrmi");
这样做的原因是我在我的 PowerShell 脚本中做其他工作,并希望将它们全部保存在一个地方。
谢谢 !
最佳答案
这是两种技术的不寻常组合,但它是可能的。
如果您尝试连接到 JBoss 服务器,最快的方法可能是调用 twiddle。 ,一个命令工具,它将 JMX 请求发送到目标 JBoss 服务器并将结果返回到标准输出。
另一种方法是实现 Jolokia目标服务器上的代理。这将允许您使用 REST 发出 JMX 请求。响应也将以 REST 格式返回,您可以使用 these solutions 之一在 PowerShell 中进行处理。 .
第三,您还可以部署JMX-WS目标服务器上的服务,这将允许您使用 Web 服务与 JMX 服务器进行通信。这个document提供了一些 VBScript 示例。
以上都没有实际使用您概述的 JMXServiceURL 语法,我想不出一种方法可以将这个基于 RMI 的协议(protocol)真正干净地集成到 PowerShell 中,但希望以上其中一个对您有用。
========== 更新 ==========
可能有一种方法可以使用 RMI 实现。看看IKVM .它是 .NET 编译器的 Java 字节码。我已经成功地将 JMX/RMI java 代码编译成 .Net 程序集并从 C# 中使用它。我认为 PowerShell 会做同样的事情。
关于powershell - 使用 PowerShell 连接到 JMX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6925023/