此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Framework 6.1.10! |
此版本仍在开发中,尚未被视为稳定版本。对于最新的稳定版本,请使用 Spring Framework 6.1.10! |
对于远程访问,Spring JMX 模块在包内提供了两个实现,用于创建服务器端和客户端
连接。FactoryBean
org.springframework.jmx.support
服务器端连接器
要让 Spring JMX 创建、启动和公开 JSR-160 ,您可以使用
配置如下:JMXConnectorServer
<bean id="serverConnector" class="org.springframework.jmx.support.ConnectorServerFactoryBean"/>
默认情况下,创建到 的绑定。因此,bean 暴露了
通过 localhost 端口 9875 上的 JMXMP 协议本地到客户端。注意
JMXMP 协议被 JSR 160 规范标记为可选协议。现在
主要的开源 JMX 实现 MX4J 和 JDK 提供的实现
不支持 JMXMP。ConnectorServerFactoryBean
JMXConnectorServer
service:jmx:jmxmp://localhost:9875
serverConnector
MBeanServer
若要指定另一个 URL 并向 注册 ,可以分别使用 和 属性,
如以下示例所示:JMXConnectorServer
MBeanServer
serviceUrl
ObjectName
<bean id="serverConnector"
class="org.springframework.jmx.support.ConnectorServerFactoryBean">
<property name="objectName" value="connector:name=rmi"/>
<property name="serviceUrl"
value="service:jmx:rmi://localhost/jndi/rmi://localhost:1099/myconnector"/>
</bean>
如果设置了该属性,Spring 会自动注册连接器
在那下面.以下示例显示了完整的
创建 :ObjectName
MBeanServer
ObjectName
ConnectorServerFactoryBean
JMXConnector
<bean id="serverConnector"
class="org.springframework.jmx.support.ConnectorServerFactoryBean">
<property name="objectName" value="connector:name=iiop"/>
<property name="serviceUrl"
value="service:jmx:iiop://localhost/jndi/iiop://localhost:900/myconnector"/>
<property name="threaded" value="true"/>
<property name="daemon" value="true"/>
<property name="environment">
<map>
<entry key="someKey" value="someValue"/>
</map>
</property>
</bean>
请注意,使用基于 RMI 的连接器时,需要启动查找服务 ( 或 ) 才能完成名称注册。tnameserv
rmiregistry
客户端连接器
要创建一个启用了远程 JSR-160 的 ,您可以使用 ,如以下示例所示:MBeanServerConnection
MBeanServer
MBeanServerConnectionFactoryBean
<bean id="clientConnector" class="org.springframework.jmx.support.MBeanServerConnectionFactoryBean">
<property name="serviceUrl" value="service:jmx:rmi://localhost/jndi/rmi://localhost:1099/jmxrmi"/>
</bean>
基于 Hessian 或 SOAP 的 JMX
JSR-160 允许扩展客户端之间的通信方式 和服务器。前面各节中显示的示例使用基于 RMI 的强制性实现 JSR-160 规范(IIOP 和 JRMP)和(可选)JMXMP 要求。通过使用 其他提供程序或 JMX 实现(例如 MX4J)您 可以通过简单的HTTP或SSL等协议利用SOAP或Hessian等协议, 如以下示例所示:
<bean id="serverConnector" class="org.springframework.jmx.support.ConnectorServerFactoryBean">
<property name="objectName" value="connector:name=burlap"/>
<property name="serviceUrl" value="service:jmx:burlap://localhost:9874"/>
</bean>
在前面的示例中,我们使用了 MX4J 3.0.0。查看官方 MX4J 文档以获取更多信息。