Hi, I think you need to export the package of your class.
Your manifest should include something like: Export-Package: org.damiox.test.bundle2 regards, Michiel ----------------- http://www.codessentials.com - Your essential software, for free! Follow us at http://twitter.com/#!/Codessentials ________________________________ From: Damian Nardelli <[email protected]> To: [email protected] Sent: Friday, November 30, 2012 4:37 AM Subject: Getting a ClassNotFoundException when starting my bundle Hello guys, I'm getting a ClassNotFoundException when trying to start an OSGI blueprint bundle called "Bundle2" in JBOSS AS7 (jboss-as-7.2.0.Alpha1-SNAPSHOT): 00:21:27,444 DEBUG [org.apache.aries.blueprint.container.BlueprintContainerImpl] (Blueprint Extender: 2) Running blueprint container for bundle Bundle2 in state Unknown 00:21:27,444 INFO [org.jboss.osgi.framework] (MSC service thread 1-4) JBOSGI011002: Bundle started: Bundle2:1.0.0.201211300021 00:21:27,446 DEBUG [org.apache.aries.blueprint.container.BlueprintEventDispatcher] (Blueprint Extender: 2) Sending blueprint container event BlueprintEvent[type=CREATING] for bundle Bundle2 00:21:27,479 DEBUG [org.apache.aries.blueprint.container.BlueprintContainerImpl] (Blueprint Extender: 2) Tracking service references: [] 00:21:27,480 DEBUG [org.apache.aries.blueprint.container.BlueprintContainerImpl] (Blueprint Extender: 2) Instantiating components: [blueprintContainer, blueprintBundle, blueprintBundleContext, blueprintConverter, helloWorld] 00:21:27,480 DEBUG [org.apache.aries.blueprint.di.AbstractRecipe] (Blueprint Extender: 2) Unable to load class org.damiox.test.bundle2.HelloWorld from recipe BeanRecipe[name='helloWorld'], trying to load a nested class org.damiox.test.bundle2$HelloWorld 00:21:27,481 ERROR [org.apache.aries.blueprint.di.AbstractRecipe] (Blueprint Extender: 2) Unable to load class org.damiox.test.bundle2.HelloWorld from recipe BeanRecipe[name='helloWorld'] 00:21:27,481 WARN [org.apache.aries.blueprint.container.BeanRecipe] (Blueprint Extender: 2) Object to be destroyed is not an instance of UnwrapperedBeanHolder, type: null 00:21:27,482 ERROR [org.apache.aries.blueprint.container.BlueprintContainerImpl] (Blueprint Extender: 2) Unable to start blueprint container for bundle Bundle2: org.osgi.service.blueprint.container.ComponentDefinitionException: Unable to load class org.damiox.test.bundle2.HelloWorld from recipe BeanRecipe[name='helloWorld'] at org.apache.aries.blueprint.di.AbstractRecipe.doLoadType(AbstractRecipe.java:195) at org.apache.aries.blueprint.di.AbstractRecipe.loadType(AbstractRecipe.java:161) at org.apache.aries.blueprint.container.BeanRecipe.loadClass(BeanRecipe.java:245) at org.apache.aries.blueprint.container.BeanRecipe.getType(BeanRecipe.java:891) at org.apache.aries.blueprint.container.BeanRecipe.getInstance(BeanRecipe.java:319) at org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRecipe.java:802) at org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:783) at org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79) at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) [rt.jar:1.6.0_35] at java.util.concurrent.FutureTask.run(FutureTask.java:138) [rt.jar:1.6.0_35] at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88) at org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:245) at org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:183) at org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:648) at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:340) at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:242) at org.apache.aries.blueprint.utils.threading.impl.DiscardableRunnable.run(DiscardableRunnable.java:48) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) [rt.jar:1.6.0_35] at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) [rt.jar:1.6.0_35] at java.util.concurrent.FutureTask.run(FutureTask.java:138) [rt.jar:1.6.0_35] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98) [rt.jar:1.6.0_35] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206) [rt.jar:1.6.0_35] at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [rt.jar:1.6.0_35] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [rt.jar:1.6.0_35] at java.lang.Thread.run(Thread.java:662) [rt.jar:1.6.0_35] Caused by: java.lang.ClassNotFoundException: org.damiox.test.bundle2.HelloWorld from [Module "deployment.Bundle2.jar:main" from Service Module Loader] at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:190) [jboss-modules.jar:1.1.3.GA] at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468) [jboss-modules.jar:1.1.3.GA] at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456) [jboss-modules.jar:1.1.3.GA] at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398) [jboss-modules.jar:1.1.3.GA] at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:132) [jboss-modules.jar:1.1.3.GA] at org.jboss.osgi.framework.internal.HostBundleRevision.loadClass(HostBundleRevision.java:121) [jbosgi-framework-core-2.0.1.Final.jar:2.0.1.Final] at org.jboss.osgi.framework.internal.AbstractBundleState.loadClass(AbstractBundleState.java:444) [jbosgi-framework-core-2.0.1.Final.jar:2.0.1.Final] at org.jboss.osgi.framework.internal.HostBundleState.loadClass(HostBundleState.java:102) [jbosgi-framework-core-2.0.1.Final.jar:2.0.1.Final] at org.apache.aries.blueprint.container.BlueprintContainerImpl.loadClass(BlueprintContainerImpl.java:388) at org.apache.aries.blueprint.container.BlueprintRepository.loadClass(BlueprintRepository.java:410) at org.apache.aries.blueprint.container.GenericType.parse(GenericType.java:113) at org.apache.aries.blueprint.di.AbstractRecipe.doLoadType(AbstractRecipe.java:168) ... 24 more "Bundle2" is a very simple bundle that I developed just to analyze how OSGI blueprint works. This bundle contains only 1 class: org.damiox.test.bundle2.HelloWorld. The blueprint xml file (OSGI-INF/blueprint/config.xml) is detailed below: <?xml version="1.0" encoding="UTF-8" standalone="no"?> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"> <bean id="helloWorld" class="org.damiox.test.bundle2.HelloW2orld" init-method="niam"> </bean> </blueprint> And the MANIFEST.MF is the following: Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: Bundle2 Bundle-SymbolicName: Bundle2 Bundle-Version: 1.0.0.qualifier Import-Package: org.osgi.framework Bundle-ClassPath: . Bundle-RequiredExecutionEnvironment: J2SE-1.5 I'm running the JBoss Server through Eclipse Juno and starting my bundle from there. Why is it failing? This is driving me nuts :) Regards Damian
