<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
<bean id="mbeanManager"
class="server.mbean.MBeanManager" />
<bean id="mbeanTest"
class="server.mbean.MBeanTest" />
<bean id="mbeanServer"
class="org.springframework.jmx.support.MBeanServerFactoryBean">
</bean>
<bean id="assembler"
class="org.springframework.jmx.export.assembler.MetadataMBeanInfoAssembler">
<property name="attributeSource" ref="jmxAttributeSource" />
</bean>
<bean id="jmxAttributeSource"
class="org.springframework.jmx.export.annotation.AnnotationJmxAttributeSource" />
<bean id="mBeanExporter"
class="org.springframework.jmx.export.MBeanExporter">
<property name="server" ref="mbeanServer" />
<property name="assembler" ref="assembler" />
<property name="beans">
<map>
<entry key="eci:name=testBean"
value-ref="mbeanTest" />
<entry key="eci:name=manageBean"
value-ref="mbeanManager" />
</map>
</property>
<property name="notificationListeners">
<list>
<bean
class="org.springframework.jmx.export.NotificationListenerBean">
<constructor-arg ref="testNotificationListener" />
<property name="mappedObjectNames">
<list>
<value>eci:name=testBean</value>
<value>eci:name=manageBean</value>
</list>
</property>
<property name="notificationFilter"
ref="testNotificationListener" />
</bean>
</list>
</property>
</bean>
<bean id="testNotificationListener" class="server.notification.TestNotificationListener"/>
<bean id="registry" class="org.springframework.remoting.rmi.RmiRegistryFactoryBean">
<property name="port" value="9876"/>
</bean>
<bean id="serverConnector"
class="org.springframework.jmx.support.ConnectorServerFactoryBean" >
<property name="serviceUrl" value="service:jmx:rmi://localhost/jndi/rmi://localhost:9876/eci"/>
<!--<property name="environment">
<map>
<entry key="jmx.remote.x.password.file">
<value>jmxremote.password</value>
</entry>
<entry key="jmx.remote.x.access.file">
<value>jmxremote.access</value>
</entry>
</map>
</property>-->
</bean>
</beans>
針對environment設置,需要補充下.
這是針對安全設置的,jmxremote.password,jmxremote.access分別是保存的訪問許可權的信息和密碼.這兩個是文 件,這兩個文件可以參考在jdk目錄下的jrelibmanagement下的模板.我們可以根據不同的安全來確定是否需要設置用戶名和密碼.
java文件讀入spring配置文件,並啟動jmx server.
Java 代碼
package server.main;
import org.springframework.context.support.*;
public class ServerMain {
public static void main(String[] args) {
@SuppressWarnings("unused")
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext(
"/jmxServerContext.xml");
while (true) {
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
[火星人 ] spring和jmx已經有396次圍觀