如何通过RMI从jboss访问远程MBean服务器7

时间:2014-09-18 07:18:57

标签: jboss7.x jmx

我有两个应用程序,一个是在jboss中部署为7,另一个是java应用程序(Camel)。 骆驼有一个暴露的JMX服务:

service:jmx:rmi:///jndi/rmi://172.20.30.85:19999/jmxrmi/camel

现在,我需要从EJB(jboss as 7)访问它。我尝试了以下两种方法,但两者都是分开的。

A)与jboss一起使用为5.x:

JMXServiceURL target = new JMXServiceURL("service:jmx:rmi:///jndi/rmi://" + host + ":"  + port.toString() + "/jmxrmi/camel");
JMXConnector connector = JMXConnectorFactory.connect(target);

得到例外:

Caused by: javax.naming.NameNotFoundException: rmi://172.20.30.85:19999/jmxrmi/camel --  service jboss.naming.context.java.rmi:."172.20.30.85:19999".jmxrmi.camel
at org.jboss.as.naming.ServiceBasedNamingStore.lookup(ServiceBasedNamingStore.java:103)
at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:197)
at org.jboss.as.naming.InitialContext$DefaultInitialContext.lookup(InitialContext.java:241)
at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:183)
at org.jboss.as.naming.NamingContext.lookup(NamingContext.java:179)
at javax.naming.InitialContext.lookup(InitialContext.java:411)
at javax.naming.InitialContext.lookup(InitialContext.java:411)
at javax.management.remote.rmi.RMIConnector.findRMIServerJNDI(RMIConnector.java:1929)
at javax.management.remote.rmi.RMIConnector.findRMIServer(RMIConnector.java:1896)
at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:286)

B)

JMXServiceURL target = new JMXServiceURL("service:jmx:remoting-jmx://172.20.30.85:19999/jmxrmi/camel");

得到例外:

ERROR [org.jboss.remoting.remote.connection] (Remoting "endpoint" read-1) JBREM000200:  Remote connection failed: java.io.IOException: JBREM000202: Abrupt close on Remoting  connection 79f4a60c to sha-lri-pc-161/172.20.30.85:19999
11:33:44,415 WARN  [com.lombardrisk.reform.process.api.ProcessInspectorBean] (http-/127.0.0.1:8080-29) Could not connect to integration MBean server:   java.lang.RuntimeException: Operation failed with status WAITING
at   org.jboss.remotingjmx.RemotingConnector.internalRemotingConnect(RemotingConnector.java:235)
at org.jboss.remotingjmx.RemotingConnector.internalConnect(RemotingConnector.java:148)
at org.jboss.remotingjmx.RemotingConnector.connect(RemotingConnector.java:99)
at javax.management.remote.JMXConnectorFactory.connect(JMXConnectorFactory.java:268)
at com.lombardrisk.reform.process.api.ProcessInspectorBean.getIntegrationMBeanServerConnection(ProcessInspectorBean.java:328)
at com.lombardrisk.reform.process.api.ProcessInspectorBean.getRoutes(ProcessInspectorBean.java:486)

有没有人可以指导我?提前谢谢。

0 个答案:

没有答案