2 Replies Latest reply on Feb 6, 2009 4:20 AM by gertv

    Unknown protocol: bundle

    quan_quan

      I have a JBI component that uses JMX RMI-Remote to connect to an external JMX server. The component runs fine in ServiceMix 3.2.1. I recently installed FUSE ESB 4.0.0.3, re-built and packaged the component (and the SU and SA), and deployed the component and the SA into FUSE ESB 4.0.0.3. The deployment appears ok because I can see the component and the SA in the OSGI and JBI consoles. When the component runs, it can connect to the JMX server; however, when it invokes a MBean method using MBeanServerConnection, I get the exeception:

       

      Caused by: java.net.MalformedURLException: unknown protocol: bundle

              at java.net.URL.(URL.java:413)

              at sun.rmi.server.LoaderHandler.pathToURLs(LoaderHandler.java:751)

              at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:147)

              at java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.java:620)

              at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:247)

              at sun.rmi.server.MarshalInputStream.resolveClass(MarshalInputStream.java:197)

              at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)

              at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)

              at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)

              at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)

              at java.io.ObjectInputStream.readArray(ObjectInputStream.java:1667)

              at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1323)

              at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)

              at java.rmi.MarshalledObject.get(MarshalledObject.java:142)

              at javax.management.remote.rmi.RMIConnectionImpl$6.run(RMIConnectionImpl.java:1513)

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

              at javax.management.remote.rmi.RMIConnectionImpl.unwrap(RMIConnectionImpl.java:1505)

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

              at javax.management.remote.rmi.RMIConnectionImpl$7.run(RMIConnectionImpl.java:1548)

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

              at javax.management.remote.rmi.RMIConnectionImpl.unwrap(RMIConnectionImpl.java:1544)

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

              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:885)

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

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

              at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:255)

              at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:233)

              at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:142)

              at com.sun.jmx.remote.internal.PRef.invoke(Unknown Source)

              at javax.management.remote.rmi.RMIConnectionImpl_Stub.invo(Unknown Source) at javax.management.remote.rmi.RMIConnector$RemoteMBeanSererConnection.invoke(RMIConnector.java:978)

       

       

      Has anyone seen the same or samiliar problem? Could it be fixed by setting some config entry? Any help is greatly appreciated.

        • 1. Re: Unknown protocol: bundle
          quan_quan

          My JBI component wasn't packaged properly. It works now after fixing the package.

          • 2. Re: Unknown protocol: bundle
            gertv

            L.S.,

             

            Thanks for your feedback!  If the JBI bundle was being deployed OK on ServiceMix 3.2.1, you shouldn't have had to change much to get it working on ServiceMix 4.  The aim is to make both containers JBI compliant, so any JBI artifact should work on both versions.  What kind of problems did you have and is there anything we can do on the ServiceMix side to make sure we get both version more compatible?

             

            Regards,

             

            Gert