|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object java.rmi.server.RMIClassLoaderSpi org.jboss.system.JBossRMIClassLoader
An implementation of RMIClassLoaderSpi to workaround the proxy ClassCastException problem in 1.4
THIS IS A HACK!
Sun's implementation uses the caller classloader when unmarshalling proxies. This is effectively jboss.jar since that is where JRMPInvokerProxy lives. On a redeploy the new interfaces are ignored because a proxy is already cached against the classloader.
This class ignores Sun's guess at a suitable classloader and uses the thread context classloader instead.
It has to exist in the system classloader so I have included it in "system" for inclusion in run.jar
Constructor Summary | |
JBossRMIClassLoader()
Required constructor |
Method Summary | |
String |
getClassAnnotation(Class cl)
Just delegate |
ClassLoader |
getClassLoader(String codebase)
Just delegate |
Class |
loadClass(String codebase,
String name,
ClassLoader ignored)
Just delegate |
Class |
loadProxyClass(String codebase,
String[] interfaces,
ClassLoader ignored)
Ignore the JVM, use the thread context classloader for proxy caching |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public JBossRMIClassLoader()
Method Detail |
public Class loadProxyClass(String codebase, String[] interfaces, ClassLoader ignored) throws MalformedURLException, ClassNotFoundException
public Class loadClass(String codebase, String name, ClassLoader ignored) throws MalformedURLException, ClassNotFoundException
public ClassLoader getClassLoader(String codebase) throws MalformedURLException
MalformedURLException
public String getClassAnnotation(Class cl)
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |