dev@glassfish.java.net

Re: OSGI bug, cannot find javax.management.ObjectName

From: Richard S. Hall <heavy_at_ungoverned.org>
Date: Tue, 16 Jun 2009 16:11:54 -0400

The last time this issue happened, it was because not all of the bundles
involved import javax.management...

Check the dev_at_glassfish mailing list archives for the thread "broken
Felix classloader"...

-> richard

On 6/16/09 4:01 PM, Lloyd Chambers wrote:
> I forgot to mention: the manifest includes javax.management. So how
> can javax.management.ObjectName not be found?
>
> Import-Package: com.sun.enterprise.config.serverbeans;version="3.0",co
> m.sun.enterprise.deployment;version="3.0",com.sun.enterprise.deployme
> nt.io;version="3.0",com.sun.enterprise.deployment.util;version="3.0",
> *javax.management*,javax.management.j2ee;version="1.1",javax.naming,jav
> ax.rmi,org.glassfish.admin.amx.annotation;version="3.0",org.glassfish
> .admin.amx.base;version="3.0",org.glassfish.admin.amx.config;version=
> "3.0",org.glassfish.admin.amx.core;version="3.0",org.glassfish.admin.
> amx.core.proxy;version="3.0",org.glassfish.admin.amx.impl.j2ee;versio
> n="3.0",org.glassfish.admin.amx.impl.j2ee.loader;version="3.0",org.gl
> assfish.admin.amx.impl.mbean;version="3.0",org.glassfish.admin.amx.im
> pl.util;version="3.0",org.glassfish.admin.amx.intf.config;version="3.
> 0",org.glassfish.admin.amx.j2ee;version="3.0",org.glassfish.admin.amx
> .util;version="3.0",org.glassfish.admin.amx.util.jmx;version="3.0",or
> g.glassfish.api.amx;version="3.0",org.glassfish.internal.data;version
> ="3.0",org.jvnet.hk2.annotations;version="0.3",org.jvnet.hk2.componen
> t;version="0.3"
>
>
>
> On Jun 16, 2009, at 12:51 PM, Lloyd Chambers wrote:
>
>> I've run into a problem like this before and I don't know why OSGI
>> requires breaking the JDK. I forget the solution, but I'm stuck
>> until I find one.
>> ...
>>
>> Module amx-j2ee-impl has a dependency on module amx-core-impl, and
>> calls getSelf(J2EEServer.class). Method getSelf() is in a superclass
>> which is found in the amx-core-impl module. The generated proxy uses
>> a handler defined in the amx-core module.
>>
>> The calling code looks like this:
>>
>> import javax.management.ObjectName; <=== imports the problem class
>> ...
>> J2EEServer selfProxy = getSelf(J2EEServer.class); <== call superclass
>> method in another module
>> ObjectName test = selfProxy.objectName(); <== ClassNotFoundException
>>
>> The proxy method objectName() returns a javax.management.ObjectName,
>> a standard class in the JDK.
>>
>> Yet, I get a
>> NoClassDefFoundError. This seems like a bug to me, and I don't know how to fix it.
>>
>>
>> SEVERE: Caused by: java.lang.NoClassDefFoundError:
>> javax/management/ObjectName
>> Jun 16, 2009 12:38:16 PM
>> SEVERE: at $Proxy107.objectName(Unknown Source)
>> Jun 16, 2009 12:38:16 PM
>> SEVERE: at
>> org.glassfish.admin.amx.impl.j2ee.J2EEServerImpl.registerChildren(J2EEServerImpl.java:102)
>> Jun 16, 2009 12:38:16 PM
>> SEVERE: at
>> org.glassfish.admin.amx.impl.j2ee.DASJ2EEServerImpl.registerChildren(DASJ2EEServerImpl.java:68)
>> Jun 16, 2009 12:38:16 PM
>> SEVERE: at
>> org.glassfish.admin.amx.impl.mbean.AMXImplBase.postRegisterHook(AMXImplBase.java:1218)
>> Jun 16, 2009 12:38:16 PM
>> SEVERE: at
>> org.glassfish.admin.amx.impl.mbean.MBeanImplBase.postRegister(MBeanImplBase.java:440)
>> Jun 16, 2009 12:38:16 PM
>> SEVERE: at
>> com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.postRegisterInvoke(DefaultMBeanServerInterceptor.java:1035)
>> Jun 16, 2009 12:38:16 PM
>> SEVERE: ... 15 more
>> Jun 16, 2009 12:38:16 PM
>> SEVERE: Caused by: java.lang.ClassNotFoundException:
>> javax.management.ObjectName
>> Jun 16, 2009 12:38:16 PM
>> SEVERE: at
>> org.apache.felix.framework.searchpolicy.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:618)
>> Jun 16, 2009 12:38:16 PM
>> SEVERE: at
>> org.apache.felix.framework.searchpolicy.ModuleImpl.access$100(ModuleImpl.java:59)
>> Jun 16, 2009 12:38:16 PM
>> SEVERE: at
>> org.apache.felix.framework.searchpolicy.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1446)
>> Jun 16, 2009 12:38:16 PM
>> SEVERE: at java.lang.ClassLoader.loadClass(ClassLoader.java:254)
>> Jun 16, 2009 12:38:16 PM
>> SEVERE: at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:402)
>> Jun 16, 2009 12:38:16 PM
>> SEVERE: ... 21 more
>> Jun 16, 2009 12:38:16 PM
>> org.glassfish.admin.amx.impl.loader.AMXStartupServiceNew _loadAMXMBeans
>>
>
> Lloyd Chambers
> lloyd.chambers_at_sun.com <mailto:lloyd.chambers_at_sun.com>
> GlassFish Team
>
>
>