如何将.Net app连接到JMX代理?

时间:2009-03-26 12:07:54

标签: java .net interop jmx

我需要将我的.Net应用程序连接到其他人的JMX代理。我已经读到这不是完成的事情,我应该使用肥皂或其他任何东西。由于这不会发生,有没有可以帮助我的图书馆或互操作技术?我只对简单的事情感兴趣,比如调用远程操作或返回字符串结果。

4 个答案:

答案 0 :(得分:1)

.NET实际上不是用于与JMX交谈的技术。 JMX是内置标准,是Java的一部分,但非常适合在Java中运行。我会假设您无法控制您尝试使用的应用程序,因为您表明您正在尝试使用其他人的JMX代理。

在这种情况下,您可能需要考虑使用Java编写应用程序或部分应用程序。这是访问JMX的最佳方式。如果这不是一个选项,你可以考虑一些事情:

1)检查您要连接的应用程序是否可以将数据公开为JMX以外的其他内容。允许通过Web服务访问相同的数据通常并不困难。

2)编写一个与JMX服务器通信并公开Web服务的小型Java包装器。这允许您查询依次通过JMX的Web服务。

3)JMX还有其他代理可以让它与不同的技术交流。您可以使用类似SNMP代理的东西并使用.NET中的SNMP陷阱。有关这方面的更多信息,请访问:http://java.sun.com/javase/6/docs/technotes/guides/management/snmp.html

答案 1 :(得分:1)

如果启动HtmlAdaptorServer - 您可以使用URL来使用标准HTTP调用来调用JMX方法。

我过去从Perl做过这个,作为系统管理任务的一部分。它不漂亮,如果JMX接口发生了很大变化,它就无法维护。但是..如果你需要一个快速而肮脏的黑客 - 这就是它!

答案 2 :(得分:1)

Web Services Connector for Java Management Extensions (JMX) Agents和参考实施ws-jmx-connector将是我的选择。 JSR 262将为跨平台/跨语言的企业集成项目提供新的机会,但不幸的是,开发速度已经放缓。

它只需要一些SOAP调用来调用JMX管理接口的所有操作,即使包括回调/通知,也可以使用IIRC。

答案 3 :(得分:0)

您可以使用IKVM执行此操作。它是.Net CLR编译器的Java字节代码,可以与JMX一起使用。