dev@glassfish.java.net

Re: debugging ClassNotFoundException runtime exception in hk2/OSGi?

From: Bobby Bissett <bobby.bissett_at_oracle.com>
Date: Tue, 29 Jun 2010 15:12:08 -0400

On Jun 29, 2010, at 2:52 PM, Snjezana Sevo-Zenzerovic wrote:
> There is nothing wrong with your Maven dependencies, but you
> probably need to check OSGi exports in shoal-gms-impl.jar and
> imports in shoal-gms-api.jar. If I remember correctly, these jars
> are OSGi-fied in Shoal build itself and not repackaged in GlassFish,
> right?

That's right. Here is the export-package metadata for the shoal-gms-
impl class (the one that contains the elusive class):

Export-Package: com.sun.enterprise.ee.cms.core;uses:="com.sun.enterpri
  se.ee.cms.impl.common,com.sun.enterprise.ee.cms.spi",com.sun.enterpri
  se.ee.cms.logging;uses:="sun.security.action",com.sun.enterprise.mgmt
  ;uses:="com.sun.enterprise.ee.cms.impl.base,com.sun.enterprise.ee.cms
  .logging,com.sun.enterprise.ee.cms.core,com.sun.enterprise.mgmt.trans
  port,com.sun.enterprise.ee.cms.impl.common",com.sun.enterprise.mgmt.t
  ransport;uses:="com.sun.enterprise.ee.cms.impl.base,com.sun.enterpris
  e.ee.cms.logging,com.sun.enterprise.ee.cms.core",com.sun.enterprise.e
  e.cms.impl.common;uses:="com.sun.enterprise.ee.cms.core,com.sun.enter
  prise.ee.cms.logging,com.sun.enterprise.ee.cms.spi,com.sun.enterprise
  .ee.cms.impl.base",com.sun.enterprise.ee.cms.spi;uses:="com.sun.enter
  prise.ee.cms.core",com.sun.enterprise.mgmt.transport.grizzly;uses:="c
  om.sun.grizzly,com.sun.grizzly.util,com.sun.grizzly.connectioncache.s
  erver,com.sun.enterprise.mgmt.transport,com.sun.grizzly.filter,com.su
  n.enterprise.mgmt,com.sun.enterprise.ee.cms.impl.base,com.sun.grizzly
  .connectioncache.client,com.sun.grizzly.async",com.sun.enterprise.ee.
  cms.impl.client;uses:="com.sun.enterprise.ee.cms.core,com.sun.enterpr
  ise.ee.cms.logging",com.sun.enterprise.osgi;uses:="org.osgi.framework
  ",com.sun.enterprise.ee.cms.impl.base;uses:="com.sun.enterprise.ee.cm
  s.logging,com.sun.enterprise.ee.cms.core,com.sun.enterprise.ee.cms.im
  pl.common,com.sun.enterprise.ee.cms.spi,com.sun.enterprise.mgmt,com.s
  un.enterprise.mgmt.transport"

The class not found is com.sun.enterprise.ee.cms.core.GMSFactory, so
that part looks ok, right?

The import-package info for gms-adapter is:

Import-Package: com.sun.enterprise.config.serverbeans;version="3.1",co
  m.sun.enterprise.ee.cms.core,com.sun.enterprise.ee.cms.impl.client,co
  m.sun.enterprise.mgmt.transport.grizzly,com.sun.logging;version="3.1"
  ,org.glassfish.api;version="3.1",org.glassfish.api.admin;version="3.1
  ",org.glassfish.api.event;version="3.1",org.glassfish.gms;version="3.
  1",org.glassfish.gms.bootstrap;version="3.1",org.jvnet.hk2.annotation
  s;version="1.0",org.jvnet.hk2.component;version="1.0",org.jvnet.hk2.c
  onfig.types;version="1.0"

I see the correct package in there as well,
"com.sun.enterprise.ee.cms.core." Is there more data that should be in
these lines?

Thanks,
Bobby