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