I also faced that problem trying to use a Hessian proxy service. Tried the solution provided by ryanhowai but it didn't fixed it completely.
But after debugging for a while, I found a simple fix that, at least for now, makes everything work (although I feel it's not the most elegant way to fix it and will keep an eye on it in case I detect any problem).
Basically, the problem is that Spring, when trying to instantiate some classes, uses this:
Code:
Thread.currentThread().getContextClassLoader()
Problem is that the thread that Spring gets is the one that starts up the Eclipse environment and its class loader has no information at all about the plugin's class loader, so that's why Spring cannot find any class.
So, in the end, what I did to fix the problem was, in my RCP application class, write the following code:
Code:
Thread.currentThread().setContextClassLoader(ACApplication.class.getClassLoader())
After that, Spring was being instantiated properly and my application was able to use everything without a problem. Did that 'cause the original ClassLoader only had three (or four, don't remember) classes available: the Eclipse Main launcher and some inner classes, so I thought I wasn't going to overwrite something necessary later on.
As a conclusion, I think the root of the problem lies on the way Eclipse is instantiated and how it instantiate the available plugins.
Hope this is helpful for somebody.
Regards,
Ivan