?
Dieses Dokument verwendet PHP-Handbuch für chinesische Websites Freigeben
對于遠程訪問,Spring JMX模塊在 org.springframework.jmx.support
包內(nèi)提供了兩個 FactoryBean
實現(xiàn),用來構(gòu)建服務(wù)器端和客戶端的連接器。
使Spring JMX構(gòu)建,啟動和暴露一個JSR-160 JMXConnectorServer
,要使用以下配置:
<bean id="serverConnector" class="org.springframework.jmx.support.ConnectorServerFactoryBean"/>
ConnectorServerFactoryBean
默認創(chuàng)建一個 JMXConnectorServer
,
并將其綁定到 "service:jmx:jmxmp://localhost:9875"
。
因此該 serverConnector
Bean在本機9875端口通過JMXMP協(xié)議將本地 MBeanServer
暴露給客戶。
要留意JSR160規(guī)范已將JMXMP協(xié)議標(biāo)記為可選的,如今,主流的開源JMX實現(xiàn)MX4J和J2SE 5.0提供的實現(xiàn)都已不支持JMXMP了。
要指定其他URL和要用 MBeanServer
注冊 JMXConnectorServer
,
要使用相應(yīng)的 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>
如果設(shè)置了 ObjectName
,Spring將自動把連接器用該 ObjectName
注冊到 MBeanServer
上。
以下例子展示了當(dāng)創(chuàng)建一個JMX連接器時,你可以傳給 ConnectorServerFactoryBean
的所有參數(shù):
<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>
要注意的是,當(dāng)使用一個基于RMI的連接器,你要先啟動查找服務(wù)(tnameserv或者rmiregistry),以便完成命名注冊。 如果你在使用Spring將遠程服務(wù)通過RMI輸出,那么Spring已經(jīng)構(gòu)建了一個RMI注冊服務(wù)。如果沒有使用Spring,通過使用以下配置片段,你也可以很容易地啟動一個注冊服務(wù)。
<bean id="registry" class="org.springframework.remoting.rmi.RmiRegistryFactoryBean"> <property name="port" value="1099"/> </bean>
要構(gòu)建一個 MBeanServerConnection
到一個遠程的JSR-160 MBeanServer
,
使用以下所示的 MBeanServerConnectionFactoryBean
。
<bean id="clientConnector" class="org.springframework.jmx.support.MBeanServerConnectionFactoryBean"> <property name="serviceUrl" value="service:jmx:rmi://localhost:9875"/> </bean>
JSR-160運行擴展客戶端與服務(wù)器端交流的方式。上面的例子都使用了強制的基于RMI的實現(xiàn),這是JSR-160規(guī)范(IIOP和JRMP)和(可選的JMXMP)要求的。 通過使用其他提供商的或者其他的JMX實現(xiàn)(例如 MX4J),你就可以享受其他協(xié)議, 如SOAP,Hessian,基于HTTP或SSL的Burlap,或者其他協(xié)議:
<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官方文檔。