以下代码可以开启一个MBean服务,并将MBean注册到该服务中。
在做JMX开发调试时,可以比较方便的用于测试,无需每次都将代码发布到服务器中测试。
import java.lang.management.ManagementFactory;
import javax.management.MBeanServer;
import javax.management.MBeanServerFactory;
import javax.management.ObjectName;
import javax.management.remote.JMXConnectorServer;
import javax.management.remote.JMXConnectorServerFactory;
import javax.management.remote.JMXServiceURL;
/**
* 运行此程序需要加入以下参数就可以以JMX方式监控程序了<br><br>
* -Dcom.sun.management.jmxremote.port=9999 该参数表示Server的访问端口<br><br>
* -Dcom.sun.management.jmxremote.authenticate=false 该参数设置客户端访问时无需认证,如果不加,需要客户端连接时传入认证,认证配置文件是jmxremote.password,该文件在jre/lib/managerment目录下<br><br>
* -Dcom.sun.management.jmxremote.ssl=false 连接时无需进行ssl认证<br><br>
*
* @version
*
*/
public class AnalysesMBeanServerTest {
private static MBeanServer server;
private static String PROTOCOL = "rmi";
private static String HOST = "localhost";
private static int PORT = 9999;
public static void init() throws Exception {
startServerConnector();
// 将我们的应用MBean注册到Server中,客户端就可以连接访问了
server.registerMBean(new AnalysesServiceMBean(), new ObjectName(
"comba:name=analysesServiceMBean"));
}
public static void startServerConnector() throws Exception {
// 这里调用ManagementFactory.getPlatformMBeanServer()创建MBeanServer
// 实际其第一次启动时也是调用MBeanServerFactory.createMBeanServer()创建MBeanServer
// 之后将创建的这个Server注册到平台的MBeanServer
// 从jdk文档可知,该方法返回的Server主要用于注册平台MXBean,
// 但jdk也建议 将此平台用于注册平台 MXBean 之外的其他应用程序管理 Bean。
// 这将允许所有 MBean 通过同一个 MBeanServer 发布,从而能够更方便地进行网络发布和发现。应该避免平台 MXBean 的名称冲突。
server = ManagementFactory.getPlatformMBeanServer();
// 这里再用以下构造方法构造JMXServiceURL,再启动客户端连接监听,客户端就可以正常连接了
JMXServiceURL serviceURL = new JMXServiceURL(PROTOCOL, HOST, PORT);
JMXConnectorServer connectorServer = JMXConnectorServerFactory
.newJMXConnectorServer(serviceURL, null, server);
server.registerMBean(connectorServer, new ObjectName(
"comba:name=connector"));
connectorServer.start();
System.out.println(connectorServer.isActive());
}
public static void main(String[] args) {
try {
init();
} catch (Exception ex) {
ex.printStackTrace();
return;
}
System.out.print("startup....");
}
}
分享到:
相关推荐
2. **注册MBean**: 使用`MBeanServer`注册你的MBean。`MBeanServer`是JMX的核心组件,负责管理所有的MBeans。 3. **导出MBean**: 使用`MBeanServer`的`registerMBean()`方法将MBean注册到服务器,并获取其Object...
JMX架构由管理代理(MBeans)、服务提供者接口(MBean Server)和管理客户端三部分组成。MBeans代表可管理的对象,它们可以是简单的数据点或复杂的系统服务。MBean Server是一个运行在Java虚拟机中的核心组件,它...
Java Management Extensions(JMX)是Java平台上的一个标准管理框架,它允许开发人员创建、注册和管理名为MBeans(Managed Beans)的对象,这些对象代表了系统、应用程序或服务的可管理资源。通过JMX,我们可以远程...
通过分析`jmxdemo`项目的源代码,你可以学习如何创建自定义MBeans,如何将它们注册到MBean服务器,以及如何使用JMX客户端进行交互。这将帮助你理解和掌握JMX技术,从而更好地在实际项目中实现管理和监控功能。 此外...
接着,我们需要将MBean注册到MBeanServer,这样它就可以通过JMX接口访问了。 注册过程通常涉及以下步骤: 1. 创建MBean:编写一个实现了特定接口的Java类,这个接口定义了管理操作。 2. 创建MBeanInfo:描述MBean的...
Java Management Extensions(JMX)是Java平台上的一个标准...通过理解MBean、MBean Server和连接器的工作原理,以及如何编写和使用JMX代码,我们可以更好地控制和优化我们的应用程序,提升系统的可维护性和稳定性。
在本示例代码中,我们将探讨如何创建和注册MBean,以及如何使用它来进行远程管理。 首先,我们来创建一个MBean。一个MBean通常是一个Java类,它公开了一些属性和操作,这些都可以通过JMX接口访问。例如,我们可以...
- **MBean服务器(MBean Server)**:是JMX的核心组件,它负责注册、查找、管理和交互MBean。所有的MBean都必须在MBean服务器中注册,以便被其他组件发现和使用。 - **MBean代理(MBean Proxy)**:允许客户端代码...
1. **JMX与Spring 结合实例**:在Spring应用中,可以通过配置或者编程方式来注册MBeans(Managed Beans),这些MBeans代表了应用中的特定组件或服务。Spring 提供了`PlatformMBeanServer`的自动配置,可以方便地将...
在实际应用中,可以通过编写Java代码来建立JMX客户端,连接到远程服务器的MBeanServer,然后通过MBean接口获取并处理监控数据。也可以使用工具,如JConsole、VisualVM等,它们提供了图形化的界面来直接查看和操作...
这个版本的JMX包括了核心的MBean服务器、MBean接口定义、MBean代理、通知服务等组件。MBean(Managed Bean)是JMX中的核心概念,它代表了管理的对象,可以是系统的一个组件、服务或者任何需要被管理的资源。 2. `...
Java Management Extensions(JMX)是Java平台上的一个标准技术,用于管理和监控应用程序、服务和设备。JMX允许开发者创建管理接口,以便在运行时收集和操作应用的状态信息。jmxdemo.rar是一个包含JMX服务端和客户端...
例如,可以使用JMX API编写代码动态地调用MBean服务器的接口来创建新的MBean,或者发送通知来启动监控中的某些特定任务。这种能力极大地增强了网络监控系统的灵活性和动态配置能力。 综上所述,JMX技术在网络监控中...
3. **MBean Server**:MBean Server是JMX框架的中心,负责注册MBean、执行MBean的操作以及处理MBean之间的交互。 4. **JMX连接器**:JMX连接器允许远程客户端连接到MBean Server,进行管理和监控操作。常见的有RMI...
这些例子可能包括MBean的实现、注册、查询以及使用JMX客户端进行操作的代码片段。 总的来说,JMX是一个强大的工具,它让开发者能够轻松地对Java应用进行监控和管理,通过暴露管理接口,使得运维人员可以在运行时...
2. **MBean服务器**: MBean服务器是JMX的核心,它负责存储、注册和管理MBeans。所有MBeans都在MBean服务器中注册,以便其他组件可以通过JMX接口进行访问。 3. **JMX连接器**: JMX连接器允许外部工具或应用与MBean...
**AMX**是GlassFish对JMX的一次重大扩展,它不仅简化了MBean的创建和注册过程,还引入了更高级的功能,如动态代理、基于注解的配置和更丰富的事件模型。通过AMX,开发者可以在不牺牲灵活性和效率的情况下,轻松地在...
开发者可以在自己的应用程序中暴露JMX接口,通过实现MBean接口或使用MBeanServer的注册功能,使组件变得可监控和可管理。这通常需要在代码中包含`javax.management`包的相关API。 9. **最佳实践** 在实际应用中,...
Java Management Extensions(JMX)是Java平台上的一个标准管理框架,用于管理和监控应用程序、系统和服务。JMX允许开发者创建可管理的组件,并提供了一种统一的方式来远程访问和控制这些组件,使得运维人员能够轻松...
`cmdline-jmxclient` 提供了一个命令行界面,使得用户无需编写代码就能与JMX服务器交互,执行查询、获取或修改MBean的属性、调用MBean的操作等。 在Zabbix中集成`cmdline-jmxclient`,可以实现对Java应用的指标收集...