Hello, First, my apologies if this is the wrong forum. I have a bundle with two blueprint XML files, one contains a Camel context, and another one defines beans. I want to share the beans across other Camel contexts, but for now, I am only testing with one. In the beans XML, I am defining a custom error handler:
<?xml version="1.0" encoding="UTF-8"?> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camel="http://camel.apache.org/schema/blueprint" xsi:schemaLocation=" http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"> <bean id=“myErrorHandler" class="org.apache.camel.builder.LoggingErrorHandler"> <property name="level" value="INFO"/> </bean> </blueprint> In the other blueprint XML the camel route references the error handler: <?xml version="1.0" encoding="UTF-8"?> <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:camel="http://camel.apache.org/schema/blueprint" xsi:schemaLocation=" http://www.osgi.org/xmlns/blueprint/v1.0.0 https://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd"> <camelContext trace="true” errorHandlerRef=“myErrorHandler” streamCache="false” xmlns="http://camel.apache.org/schema/blueprint”> ... When I deploy my bundle in Karaf, I get this error: org.osgi.service.blueprint.container.ComponentDefinitionException: Unable to load class org.apache.camel.builder.LoggingErrorHandler from recipe BeanRecipe[name='myErrorHandler'] at org.apache.aries.blueprint.di.AbstractRecipe.doLoadType(AbstractRecipe.java:195)[32:org.apache.aries.blueprint.core:1.4.5] at org.apache.aries.blueprint.di.AbstractRecipe.loadType(AbstractRecipe.java:161)[32:org.apache.aries.blueprint.core:1.4.5] at org.apache.aries.blueprint.container.BeanRecipe.loadClass(BeanRecipe.java:250)[32:org.apache.aries.blueprint.core:1.4.5] at org.apache.aries.blueprint.container.BeanRecipe.getType(BeanRecipe.java:917)[32:org.apache.aries.blueprint.core:1.4.5] at org.apache.aries.blueprint.container.BeanRecipe.getInstanceFromType(BeanRecipe.java:341)[32:org.apache.aries.blueprint.core:1.4.5] at org.apache.aries.blueprint.container.BeanRecipe.getInstance(BeanRecipe.java:282)[32:org.apache.aries.blueprint.core:1.4.5] at org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRecipe.java:830)[32:org.apache.aries.blueprint.core:1.4.5] at org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:811)[32:org.apache.aries.blueprint.core:1.4.5] at org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:79)[32:org.apache.aries.blueprint.core:1.4.5] at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_45] at org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:88)[32:org.apache.aries.blueprint.core:1.4.5] at org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:247)[32:org.apache.aries.blueprint.core:1.4.5] at org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:183)[32:org.apache.aries.blueprint.core:1.4.5] at org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:688)[32:org.apache.aries.blueprint.core:1.4.5] at org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:383)[32:org.apache.aries.blueprint.core:1.4.5] at org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:270)[32:org.apache.aries.blueprint.core:1.4.5] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_45] at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_45] at org.apache.aries.blueprint.container.ExecutorServiceWrapper.run(ExecutorServiceWrapper.java:106)[32:org.apache.aries.blueprint.core:1.4.5] at org.apache.aries.blueprint.utils.threading.impl.DiscardableRunnable.run(DiscardableRunnable.java:48)[32:org.apache.aries.blueprint.core:1.4.5] at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)[:1.8.0_45] at java.util.concurrent.FutureTask.run(FutureTask.java:266)[:1.8.0_45] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)[:1.8.0_45] at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)[:1.8.0_45] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_45] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_45] at java.lang.Thread.run(Thread.java:745)[:1.8.0_45] Caused by: java.lang.ClassNotFoundException: org.apache.camel.builder.LoggingErrorHandler not found by org.apache.camel.camel-core [45] at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1574)[org.apache.felix.framework-5.4.0.jar:] at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:79)[org.apache.felix.framework-5.4.0.jar:] at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2018)[org.apache.felix.framework-5.4.0.jar:] at java.lang.ClassLoader.loadClass(ClassLoader.java:357)[:1.8.0_45] at org.apache.felix.framework.BundleWiringImpl.getClassByDelegation(BundleWiringImpl.java:1415)[org.apache.felix.framework-5.4.0.jar:] at org.apache.felix.framework.BundleWiringImpl.searchImports(BundleWiringImpl.java:1595)[org.apache.felix.framework-5.4.0.jar:] at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1525)[org.apache.felix.framework-5.4.0.jar:] at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:79)[org.apache.felix.framework-5.4.0.jar:] at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2018)[org.apache.felix.framework-5.4.0.jar:] at java.lang.ClassLoader.loadClass(ClassLoader.java:357)[:1.8.0_45] at org.apache.felix.framework.Felix.loadBundleClass(Felix.java:1925)[org.apache.felix.framework-5.4.0.jar:] at org.apache.felix.framework.BundleImpl.loadClass(BundleImpl.java:978)[org.apache.felix.framework-5.4.0.jar:] at org.apache.aries.blueprint.container.BlueprintContainerImpl.loadClass(BlueprintContainerImpl.java:439)[32:org.apache.aries.blueprint.core:1.4.5] at org.apache.aries.blueprint.container.BlueprintRepository.loadClass(BlueprintRepository.java:410)[32:org.apache.aries.blueprint.core:1.4.5] at org.apache.aries.blueprint.container.GenericType.parse(GenericType.java:113)[32:org.apache.aries.blueprint.core:1.4.5] at org.apache.aries.blueprint.di.AbstractRecipe.doLoadType(AbstractRecipe.java:168)[32:org.apache.aries.blueprint.core:1.4.5] ... 26 more I checked the OSGI manifest, and it does import the org.apache.camel.builder package: Import-Package: org.apache.camel.builder;version="[2.17,3)” Any ideas? Best regards, Alex soto