| 
| narrowing problem in my plugin using jmx [message #45831] | Tue, 19 October 2004 10:19  |  | 
| Eclipse User  |  |  |  |  | Originally posted by: buhla2.hta-bi.bfh.ch 
 hello!
 
 i have a problem in my plugin when i try to narrow (using the
 PortableRemoteObject.narrow() method) an object to a
 javax.management.j2ee.ManagementHome instance.
 
 InitialContext context = new InitialContext(props);
 Object object = context.lookup(props.getProperty(JSR77Connector.CONTEXT));
 Class homeClass =
 Thread.currentThread().getContextClassLoader().loadClass(MAN AGEMENT_HOME);
 Object o = PortableRemoteObject.narrow (object, homeClass);
 ManagementHome home = (ManagementHome) o;
 
 loading the ManagementHome class works without any problem, but the narrow()
 method rises a ClassCastException.
 
 the same code works fine as a non plugin standalone java programm.
 
 the bundle manifest file looks like that:
 
 Bundle-Activator: ch.bfh.jmxconsole.connectors.jsr77.internal.ConnectionImpl
 Bundle-ClassPath: /ConnectionImpl.jar, /jbossall-client.jar
 Import-Package: ch.bfh.jmxconsole.core.connection,
 ch.bfh.jmxconsole.connectors.jsr77, org.osgi.framework
 Export-Package: ch.bfh.jmxconsole.connectors.jsr77.internal
 
 the classpath should be ok because the class can be found and loaded from
 the library jar.
 does someone have any ideas?
 
 thanx alex
 |  |  |  | 
|  | 
| 
| Re: narrowing problem in my plugin using jmx [message #45885 is a reply to message #45864] | Thu, 21 October 2004 00:44  |  | 
| Eclipse User  |  |  |  |  | Originally posted by: buhla2.hta-bi.bfh.ch 
 thanks for your help jeff... actually the contextclassloader was wrong...
 before using my own custom urlclassloader i tryied to instantiate some
 objects without setting the current thread's contextclassloader because i
 assumed it was set to the bundle's own classloader... this led to
 problems... later i found that when the current thread's classloader is not
 explicitly set, then it was null. so i used my own custom url classloader to
 handle that... without any success.
 
 to fix the problem i just have to set the current thread's
 contextclassloader to the bundle's own classloader and now the following
 works:
 
 Thread.currentThread().setContextClassLoader(this.getClass() .getClassLoader());
 
 InitialContext ic = new InitialContext(props); Object ref =
 ic.lookup(props.getProperty(JSR77Connector.CONTEXT));
 
 Class mgmtHomeClass = bundleContext.getBundle().loadClass(MANAGEMENT_HOME);
 
 ManagementHome mgmtHome = (ManagementHome)PortableRemoteObject.narrow(ref,
 mgmtHomeClass);
 
 
 
 alex
 
 
 
 "Jeff McAffer" <jeff_mcaffer@REMOVE.ca.ibm.com> schrieb im Newsbeitrag
 news:cl3jtu$5ec$1@eclipse.org...
 >I would start by trying to find if there is someone else who can supply the
 >class you are trying to narrow to.  I suspect that the context classloader
 >is finding a different one than you expect.
 >
 > BTW, who is setting up the context classloader?  What are you expecting it
 > to be?
 >
 > Jeff
 >
 > "Alex B
 |  |  |  | 
Powered by 
FUDForum. Page generated in 0.03416 seconds