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

Reply via email to