JBoss Community

Re: Remote JMX connector for AS7

created by David Bosschaert in JBoss AS7 Development - View the full discussion

In a similar context, I need to make a back connection from within AS to a VM that runs our test system. This VM exposes the following JMX url: service:jmx:rmi://192.168.153.133:1191/jndi/rmi://192.168.153.133:1190/arquillian-osgi-callback

 

I can connect to that URLwithout problem from JConsole and from a standalone application that I wrote as an experiment, but when I run the following code inside AS7 it gives me the exception below.

Map<String, Object> env = new HashMap<String, Object>();env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.rmi.registry.RegistryContextFactory");JMXServiceURL serviceURL = new JMXServiceURL("service:jmx:rmi://192.168.153.133:1191/jndi/rmi://192.168.153.133:1190/arquillian-osgi-callback");JMXConnector connector = JMXConnectorFactory.connect(serviceURL, env);

 

Anyone an idea why the above code doesn't work in AS7 (its the exact code that does work in my standalone app)? Why can't I connect to 192.168.153.133 from inside AS while it's no problem from a standalone application?

 

java.io.IOException: Failed to retrieve RMIServer stub: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: 192.168.153.133; nested exception is:

    java.net.ConnectException: Connection refused]

    at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:338)

    at javax.management.remote.JMXConnectorFactory.connect(JMXConnectorFactory.java:248)

    at org.jboss.arquillian.osgi.internal.RemoteOSGiContainer.getMBeanServerConnection(RemoteOSGiContainer.java:73)

    at org.jboss.arquillian.osgi.internal.AbstractOSGiContainer.getTestArchiveStream(AbstractOSGiContainer.java:165)

    at org.jboss.arquillian.osgi.internal.AbstractOSGiContainer.getTestArchive(AbstractOSGiContainer.java:143)

    at org.jboss.test.osgi.example.simple.SimpleArchiveProviderTestCase.testBundleInjection(SimpleArchiveProviderTestCase.java:54)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

    at java.lang.reflect.Method.invoke(Method.java:597)

    at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)

    at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)

    at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)

    at org.jboss.arquillian.junit.Arquillian$6$1.invoke(Arquillian.java:251)

    at org.jboss.arquillian.impl.handler.TestEventExecuter.callback(TestEventExecuter.java:44)

    at org.jboss.arquillian.impl.handler.TestEventExecuter.callback(TestEventExecuter.java:34)

    at org.jboss.arquillian.impl.event.MapEventManager.fire(MapEventManager.java:63)

    at org.jboss.arquillian.impl.context.AbstractEventContext.fire(AbstractEventContext.java:115)

    at org.jboss.arquillian.impl.EventTestRunnerAdaptor.test(EventTestRunnerAdaptor.java:160)

    at org.jboss.arquillian.junit.Arquillian$6.evaluate(Arquillian.java:244)

    at org.jboss.arquillian.junit.Arquillian$4.evaluate(Arquillian.java:207)

    at org.jboss.arquillian.junit.Arquillian$5$1.evaluate(Arquillian.java:225)

    at org.jboss.arquillian.junit.Arquillian$MultiStatementExecutor.execute(Arquillian.java:297)

    at org.jboss.arquillian.junit.Arquillian$5.evaluate(Arquillian.java:221)

    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)

    at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)

    at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)

    at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)

    at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)

    at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)

    at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)

    at org.jboss.arquillian.junit.Arquillian$2.evaluate(Arquillian.java:163)

    at org.jboss.arquillian.junit.Arquillian$3$1.evaluate(Arquillian.java:186)

    at org.jboss.arquillian.junit.Arquillian$MultiStatementExecutor.execute(Arquillian.java:297)

    at org.jboss.arquillian.junit.Arquillian$3.evaluate(Arquillian.java:182)

    at org.junit.runners.ParentRunner.run(ParentRunner.java:236)

    at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:127)

    at org.junit.runner.JUnitCore.run(JUnitCore.java:157)

    at org.junit.runner.JUnitCore.run(JUnitCore.java:136)

    at org.jboss.arquillian.junit.JUnitTestRunner.execute(JUnitTestRunner.java:69)

    at org.jboss.arquillian.osgi.internal.JUnitBundleTestRunner.execute(JUnitBundleTestRunner.java:35)

    at org.jboss.arquillian.protocol.jmx.JMXTestRunner.runTestMethodInternal(JMXTestRunner.java:135)

    at org.jboss.arquillian.protocol.jmx.JMXTestRunner.runTestMethod(JMXTestRunner.java:97)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

    at java.lang.reflect.Method.invoke(Method.java:597)

    at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:93)

    at com.sun.jmx.mbeanserver.StandardMBeanIntrospector.invokeM2(StandardMBeanIntrospector.java:27)

    at com.sun.jmx.mbeanserver.MBeanIntrospector.invokeM(MBeanIntrospector.java:208)

    at com.sun.jmx.mbeanserver.PerInterface.invoke(PerInterface.java:120)

    at com.sun.jmx.mbeanserver.MBeanSupport.invoke(MBeanSupport.java:262)

    at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)

    at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)

    at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1427)

    at javax.management.remote.rmi.RMIConnectionImpl.access$200(RMIConnectionImpl.java:72)

    at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1265)

    at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1360)

    at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:788)

    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

    at java.lang.reflect.Method.invoke(Method.java:597)

    at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)

    at sun.rmi.transport.Transport$1.run(Transport.java:159)

    at java.security.AccessController.doPrivileged(Native Method)

    at sun.rmi.transport.Transport.serviceCall(Transport.java:155)

    at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)

    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)

    at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)

    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)

    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

    at java.lang.Thread.run(Thread.java:619)

Caused by: javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: 192.168.153.133; nested exception is:

    java.net.ConnectException: Connection refused]

    at com.sun.jndi.rmi.registry.RegistryContext.lookup(RegistryContext.java:101)

    at com.sun.jndi.rmi.registry.RegistryContext.lookup(RegistryContext.java:107)

    at javax.naming.InitialContext.lookup(InitialContext.java:392)

    at javax.management.remote.rmi.RMIConnector.findRMIServerJNDI(RMIConnector.java:1886)

    at javax.management.remote.rmi.RMIConnector.findRMIServer(RMIConnector.java:1856)

    at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:257)

    ... 72 more

Caused by: java.rmi.ConnectException: Connection refused to host: 192.168.153.133; nested exception is:

    java.net.ConnectException: Connection refused

    at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:601)

    at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:198)

    at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:184)

    at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:322)

    at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source)

    at com.sun.jndi.rmi.registry.RegistryContext.lookup(RegistryContext.java:97)

    ... 77 more

Caused by: java.net.ConnectException: Connection refused

    at java.net.PlainSocketImpl.socketConnect(Native Method)

    at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)

    at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)

    at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)

    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)

    at java.net.Socket.connect(Socket.java:529)

    at java.net.Socket.connect(Socket.java:478)

    at java.net.Socket.(Socket.java:189)

    at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:22)

    at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:128)

    at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:595)

    ... 82 more

 

Reply to this message by going to Community

Start a new discussion in JBoss AS7 Development at Community