Equinox has "buddy class loading" to help with these kinds of issues.  I know several people who have used this approach successfully to deal with RMI
    http://wiki.eclipse.org/index.php/Context_Class_Loader_Enhancements

Jeff

Serguey Asael Shinder wrote:
Thanks a lot for your answers.
I think we would like to stick to RMI for now, so it looks that dynamic
RMI classloading is the only option.
But it doesn't seem to be very straightforward though. 
Serguey

-----Original Message-----
From: [email protected]
[mailto:[email protected]] On Behalf Of ekkehard
Sent: 16 December 2008 15:46
To: OSGi Developer Mail List
Subject: Re: [osgi-dev] RMI + OSGi - UnmarshalException

you can also look at Eclipse Riena Remote OSGI Services

ekke

David Bosschaert schrieb:
  
Hi Serguey,

One thing that might help you here is using an implementation of the 
Distributed OSGi specification (RFC 119 in 
http://www.osgi.org/download/osgi-4.2-early-draft2.pdf ) This allows 
you to distribute OSGi services.

RFC 119 isn't completely finalized yet and at this stage there isn't a
    

  
fully complete implementation yet, but you can start playing with the 
Reference Implementation in Apache CXF. Currently in the sandbox - 
were working on making it part of the core code base and improving the
    

  
docs at the moment.

To build & test, just check it out from SVN 
http://svn.apache.org/repos/asf/cxf/sandbox/dosgi
Then run
 mvn install

Cheers,

David

Niclas Hedhman wrote:
    
On Tue, Dec 16, 2008 at 8:27 PM, Serguey Asael Shinder 
<[email protected]> wrote:

 
      
This is from February of this year, does anyone know what the latest
        

  
on this issue is? Do you have any suggestions as to how we can get 
around this issue? We would prefer if possible not to have to put 
all our classes in the same bundle. Thanks in advance for your help.
    
        
1. Either you turn on dynamic classloading for RMI, with all what 
that means, or you have all the needed classes visible to the server 
(which is the case causing you problem here).

2. If you go dynamic RMI classloading -> you need to establish 
codebase, probably only way is to use java.rmi.server.codebase 
property, AND you must use a SecurityManager.

3. If you go 'all classes in Bundles', then you have a visibility 
issue. RMI might not be able to pick up the right classloader (have 
not confirmed that), in which case you need to use the 
RMIClassLoaderSpi to provide the mechanism manually.

This is 'classloader hell' on an extreme. Both OSGi and RMI assume 
that they know classloading better than the other, so they end up 
being largely incompatible. And we programmers have no clue what is 
going on, because we have been so lazy over the years to use a 
flat/linear classloading space. Personally, I think it is time for a 
new, optimized, simplified binary and high performant Remote call 
system, where all these things are taken care of. But, everyone is 
busy criticizing RMI and promote so called "platform independent"
solutions, that have all these problems, much slower, LCD issues and 
more... Well...


Cheers
Niclas
_______________________________________________
OSGi Developer Mail List
[email protected]
https://mail.osgi.org/mailman/listinfo/osgi-dev

  
      
_______________________________________________
OSGi Developer Mail List
[email protected]
https://mail.osgi.org/mailman/listinfo/osgi-dev

    

_______________________________________________
OSGi Developer Mail List
[email protected]
https://mail.osgi.org/mailman/listinfo/osgi-dev

_______________________________________________
OSGi Developer Mail List
[email protected]
https://mail.osgi.org/mailman/listinfo/osgi-dev
  
_______________________________________________
OSGi Developer Mail List
[email protected]
https://mail.osgi.org/mailman/listinfo/osgi-dev

Reply via email to