67,515
社区成员
发帖
与我相关
我的任务
分享
<beans>
<bean class="org.springframework.jmx.support.MBeanServerConnectionFactoryBean" id="mbeanServerConnection">
<property name="serviceUrl" value="service:jmx:rmi:///jndi/rmi://localhost:1099/jmxrmi">
</property></bean>
<bean class="com.sample.QueueSizeCounter" id="queueCounter">
<property name="mBeanServerConnection" ref="mbeanServerConnection">
</property></bean>
</beans>
// A class using the MBeanServerConnection to fetch the attribute from the MBean
package com.sample;
import javax.management.MBeanServerConnection;
import javax.management.ObjectName;
import org.apache.log4j.Logger;
public class QueueSizeCounter {
private MBeanServerConnection mBeanServerConnection;
private Logger logger = Logger.getLogger(QueueSizeCounter.class);
public Long getQueueSize(String queueName) {
Long queueSize = null;
try {
ObjectName objectNameRequest = new ObjectName(
"org.apache.activemq:BrokerName=localhost,Type=Queue,Destination=" + queueName);
queueSize = (Long) mBeanServerConnection.getAttribute(objectNameRequest, "QueueSize");
return queueSize;
}
catch (Exception e) {
logger.error(e.getMessage());
}
return queueSize;
}
public void setmBeanServerConnection(MBeanServerConnection mBeanServerConnection) {
this.mBeanServerConnection = mBeanServerConnection;
}
}
// Running the Queue Counter
package com.sample;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Main {
public static void main(String[] args) {
ApplicationContext ctx = new ClassPathXmlApplicationContext("beans.xml");// —— POS1——
QueueSizeCounter queueCounter = (QueueSizeCounter) ctx.getBean("queueCounter");
String queueName = "Queue1";
long queueSize = queueCounter.getQueueSize(queueName);
System.out.println("Size of " + queueName + " : " + queueSize);
}
}
ApplicationContext ctx = new ClassPathXmlApplicationContext();
后这一句就没有这样的错误了,错误又跑到其他地方去了……ClassPathXmlApplicationContext(String A)