使用activemq'时出现异常;s BrokerViewMBean
我试图从运行activemq代理的同一进程访问jmx功能,并通过web服务公开一些属性。代码如下所示:使用activemq'时出现异常;s BrokerViewMBean,activemq,jmx,Activemq,Jmx,我试图从运行activemq代理的同一进程访问jmx功能,并通过web服务公开一些属性。代码如下所示: MBeanServer mbs = ManagementFactory.getPlatformMBeanServer(); try { ObjectName name = new ObjectName("org.apache.activemq:BrokerName=locahost,Type=Broker"); BrokerViewMBean b
MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
try {
ObjectName name = new ObjectName("org.apache.activemq:BrokerName=locahost,Type=Broker");
BrokerViewMBean brokerViewMBean = JMX.newMBeanProxy(mbs, name, BrokerViewMBean.class);
ObjectName[] queues = brokerViewMBean.getQueues();
.
.
.
} catch (Exception e) {
e.printStackTrace();
}
运行此代码时,会出现以下异常:
Caused by: javax.management.InstanceNotFoundException: org.apache.activemq:BrokerName=locahost,Type=Broker at
java.lang.reflect.UndeclaredThrowableException位于
$Proxy51.getQueues(未知源)位于
myinc.MyObject.getAllQueues(MyObject.java:37)
位于的sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)
invoke(NativeMethodAccessorImpl.java:39)
在
reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
位于java.lang.reflect.Method.invoke(Method.java:597)
org.apache.cxf.service.invoker.AbstractInvoker.PerformInvoke(AbstractInvoker.java:180)
在
org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:96)
在
org.apache.cxf.jaxws.AbstractJAXWSMethodInvoker.invoke(AbstractJAXWSMethodInvoker.java:178)
在
org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:64)
在
org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:75)
在
org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:58)
在
Executors$RunnableAdapter.call(Executors.java:441)
位于java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
在java.util.concurrent.FutureTask.run(FutureTask.java:138)中
org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
在
org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:107)
在
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:262)
在
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
在
org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:211)
在
org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:213)
在
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:193)
在
org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServlet.java:130)
在
org.apache.cxf.transport.servlet.AbstractHTTPServlet.HandlerRequest(AbstractHTTPServlet.java:221)
在
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:141)
位于javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPServlet.java:197)
在
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
在
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
在
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
在
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
在
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
在
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
在
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
在
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
在
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
在
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:602)
在
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
在java.lang.Thread.run(Thread.java:662)处,由以下原因引起:
javax.management.InstanceNotFoundException:
activemq:BrokerName=locahost,Type=brokerat
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(DefaultMBeanServerInterceptor.java:1094)
在
com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getAttribute(DefaultMBeanServerInterceptor.java:662)
在
com.sun.jmx.mbeanserver.JmxMBeanServer.getAttribute(JmxMBeanServer.java:638)
在
MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandler.java:263)
... 39多
谁能告诉我我做错了什么,这个例外想说什么
谢谢。线索在异常的部分原因中:
Caused by: javax.management.InstanceNotFoundException: org.apache.activemq:BrokerName=locahost,Type=Broker at
您正在使用的对象名称必须不正确,或者代理尚未运行。您可以使用jconsole附加到进程,并查看有效的objectname是什么。这是我的错。即使在多次查看对象名称之后,我也没有注意到我拼错了localhost(locahost)。根据你的评论,我又仔细看了一遍,发现了错误。谢谢你的帮助和时间。