我有两个应用程序,一个是在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)
有没有人可以指导我?提前谢谢。