Hi, I'm using the Karaf-4.0.0.M2
Tho, 2015-10-07 18:26 GMT+02:00 Jean-Baptiste Onofré <[email protected]>: > Hi, > > you mean using which Karaf version ? > > The new versions of Karaf use a secured MBean server. > > Regards > JB > > > On 10/07/2015 06:21 PM, tho huynh ngoc wrote: > >> Hi, >> >> I can connect to a remote Karaf version 2.2.11 and install a bundle with >> the code above. >> However, i can not connect to the remote the newer version of Karaf. >> >> I think that the error is caused by >> ObjectName mbeanName = new >> ObjectName("osgi.core:type=framework,version=1.5"); >> >> I have changed the value of Version but it does not work. >> >> I have studied for 2 days but i can't resolve it. >> >> Could you please help me? >> >> Thanks, >> Tho, >> >> >> 2015-10-07 11:15 GMT+02:00 tho huynh ngoc <[email protected]>: >> >> Thank you for your help. >>> >>> I tried with the code as follows: >>> >>> public class ConnectToRemoteKaraf { >>> >>> public static void main(String[] args) throws Exception { >>> HashMap<String, String[]> environment = new HashMap<String, >>> String[]>(); >>> String username = "karaf"; >>> String password = "karaf"; >>> String[] credentials = new String[] { username, password }; >>> environment.put("jmx.remote.credentials", credentials); >>> //192.168.56.2 is IP of a host containing remote Karaf >>> JMXServiceURL url = new JMXServiceURL("service:jmx:rmi:// >>> 192.168.56.2:44444/jndi/rmi://192.168.56.2:1099/karaf-root"); >>> JMXConnector jmxc = JMXConnectorFactory.connect(url, >>> environment); >>> MBeanServerConnection mbsc = jmxc.getMBeanServerConnection(); >>> >>> ObjectName mbeanName = new >>> ObjectName("osgi.core:type=framework,version=1.5"); >>> FrameworkMBean osgiFrameworkProxy = JMX.newMBeanProxy(mbsc, >>> mbeanName, >>> FrameworkMBean.class, false); >>> >>> osgiFrameworkProxy.startBundle(172); //172 is ID of a bundle >>> on a >>> remote Karaf Container >>> } >>> } >>> >>> However, i receive a error : >>> >>> Exception in thread "main" java.lang.reflect.UndeclaredThrowableException >>> at com.sun.proxy.$Proxy0.startBundle(Unknown Source) >>> at executor.ConnectToRemoteKaraf.main(ConnectToRemoteKaraf.java:33) >>> Caused by: javax.management.InstanceNotFoundException: >>> osgi.core:type=framework,version=1.5 >>> at >>> >>> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getMBean(DefaultMBeanServerInterceptor.java:1095) >>> at >>> >>> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.getClassLoaderFor(DefaultMBeanServerInterceptor.java:1444) >>> at >>> >>> com.sun.jmx.mbeanserver.JmxMBeanServer.getClassLoaderFor(JmxMBeanServer.java:1324) >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>> at >>> >>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >>> at >>> >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>> at java.lang.reflect.Method.invoke(Method.java:606) >>> at >>> >>> org.apache.karaf.management.boot.KarafMBeanServerBuilder$MBeanInvocationHandler.invoke(KarafMBeanServerBuilder.java:80) >>> at com.sun.proxy.$Proxy0.getClassLoaderFor(Unknown Source) >>> at >>> >>> javax.management.remote.rmi.RMIConnectionImpl$6.run(RMIConnectionImpl.java:1388) >>> at java.security.AccessController.doPrivileged(Native Method) >>> at >>> >>> javax.management.remote.rmi.RMIConnectionImpl.getClassLoaderFor(RMIConnectionImpl.java:1384) >>> at >>> >>> javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:835) >>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) >>> at >>> >>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) >>> at >>> >>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) >>> at java.lang.reflect.Method.invoke(Method.java:606) >>> at >>> sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:322) >>> at sun.rmi.transport.Transport$2.run(Transport.java:202) >>> at sun.rmi.transport.Transport$2.run(Transport.java:199) >>> at java.security.AccessController.doPrivileged(Native Method) >>> at sun.rmi.transport.Transport.serviceCall(Transport.java:198) >>> at >>> sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:567) >>> at >>> >>> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:828) >>> at >>> >>> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.access$400(TCPTransport.java:619) >>> at >>> >>> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$1.run(TCPTransport.java:684) >>> at >>> >>> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler$1.run(TCPTransport.java:681) >>> at java.security.AccessController.doPrivileged(Native Method) >>> at >>> >>> sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:681) >>> at >>> >>> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) >>> at >>> >>> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) >>> at java.lang.Thread.run(Thread.java:745) >>> at >>> >>> sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:275) >>> at >>> sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:252) >>> at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:161) >>> at com.sun.jmx.remote.internal.PRef.invoke(Unknown Source) >>> at javax.management.remote.rmi.RMIConnectionImpl_Stub.invoke(Unknown >>> Source) >>> at >>> >>> javax.management.remote.rmi.RMIConnector$RemoteMBeanServerConnection.invoke(RMIConnector.java:1022) >>> at >>> >>> javax.management.MBeanServerInvocationHandler.invoke(MBeanServerInvocationHandler.java:298) >>> ... 2 more >>> >>> >>> Could you please help me ? >>> >>> Regards, >>> Tho, >>> >>> 2015-10-06 19:39 GMT+02:00 Christian Schneider <[email protected] >>> >: >>> >>> You could use the karaf jmx services to install the bundle. >>>> If you add jolokia you can also use rest calls for this. >>>> >>>> Christian >>>> >>>> >>>> Am 06.10.2015 um 19:23 schrieb tho huynh ngoc: >>>> >>>> Hi, >>>>> >>>>> I have two hosts Karaf A and B. >>>>> >>>>> I would like to create a program Java on B to install a bundle X.jar >>>>> (either available in a directory of A or of B) into A without Karaf >>>>> console. >>>>> >>>>> How to program it? >>>>> >>>>> Thank you for your help >>>>> >>>>> Tho, >>>>> >>>>> >>>>> >>>> >>> >> > -- > Jean-Baptiste Onofré > [email protected] > http://blog.nanthrax.net > Talend - http://www.talend.com >
