dev@glassfish.java.net

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

From: Lloyd Chambers <Lloyd.Chambers_at_Sun.COM>
Date: Tue, 16 Jun 2009 13:01:11 -0700

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
GlassFish Team