On 3/26/2010 5:40 AM, Ivan wrote:
Hi,
I got a CNF exception with the lastest codes today. It seems that
geronimo-osgi-registry is started up later than some spec bundles.
After starting it manually in the car-maven-plugin.
I'm not seeing this problem, and I certainly spent a lot of time this
week trying to ensure that this started up in the correct order. I
added a dependency for geronimo-osgi-registry to geronimo-kernel, which
seemed to get the registry started when it needed to be. For server
startup,
this is explicitly started in the karaf startup.properties before any of
the specs get loaded, so it certainly would not hurt to force this to
get loaded in the car-maven-plugin. If you have code that does that,
you should probably go ahead and commit that.
So do we need to change the codes of ProviderLocator to make sure
that ProviderRegistry is really 'optional' ? Also, we might need to
start geronimo-osgi-registry a bit earlier than other components ?
I already thought I had the correct level of optional behavior here, but
it looks like there is still a problem. I'll take another pass at
making this a little more robust.
Rick
--->
java.lang.NoClassDefFoundError:
org/apache/geronimo/osgi/registry/api/ProviderRegistry
at
org.apache.geronimo.osgi.locator.ProviderLocator.getServiceClass(ProviderLocator.java:270)
at javax.xml.bind.ContextFinder.loadSPIClass(ContextFinder.java:151)
at javax.xml.bind.ContextFinder.find(ContextFinder.java:104)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:65)
at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:56)
at
org.apache.openejb.jee.JAXBContextFactory.newInstance(JAXBContextFactory.java:68)
at org.apache.openejb.jee.JaxbJavaee.getContext(JaxbJavaee.java:73)
at org.apache.openejb.jee.JaxbJavaee.unmarshal(JaxbJavaee.java:87)
at
org.apache.geronimo.connector.deployment.ConnectorModuleBuilder.createModule(ConnectorModuleBuilder.java:277)
at
org.apache.geronimo.connector.deployment.ConnectorModuleBuilder.createModule(ConnectorModuleBuilder.java:235)
at
org.apache.geronimo.j2ee.deployment.EARConfigBuilder.getDeploymentPlan(EARConfigBuilder.java:327)
at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:231)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34)
at
org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:131)
at
org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:856)
at
org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:245)
at
org.apache.geronimo.mavenplugins.car.PackageMojo.invokeDeployer(PackageMojo.java:560)
at
org.apache.geronimo.mavenplugins.car.PackageMojo.buildPackage(PackageMojo.java:376)
at
org.apache.geronimo.mavenplugins.car.PackageMojo.execute(PackageMojo.java:243)
at
org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle(DefaultLifecycleExecutor.java:556)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:535)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
at
org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
at
org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
Caused by: java.lang.ClassNotFoundException:
org.apache.geronimo.osgi.registry.api.ProviderRegistry
at
org.apache.felix.framework.ModuleImpl.findClassOrResourceByDelegation(ModuleImpl.java:771)
at
org.apache.felix.framework.ModuleImpl.access$100(ModuleImpl.java:70)
at
org.apache.felix.framework.ModuleImpl$ModuleClassLoader.loadClass(ModuleImpl.java:1637)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
--
Ivan