Hello,

I'm trying to deploy a bundle on karaf/camel that contains a bean
definition as follows:

<?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";
           xsi:schemaLocation="http://www.osgi.org/xmlns/blueprint/v1.0.0
http://www.osgi.org/xmlns/blueprint/v1.0.0/blueprint.xsd

http://camel.apache.org/schema/blueprint
http://camel.apache.org/schema/blueprint/camel-blueprint.xsd";>

    <bean id="saxonTransformerFactory"
class="net.sf.saxon.TransformerFactoryImpl"/>

</blueprint>

With Camel versions 3.20.5 and 3.21.0 the bundle fails to start with
the following error message:

2023-07-03T15:49:33,539|ERROR|org.apache.aries.blueprint.container.BlueprintContainerImpl|72|||fileinstall-C:\TIJDELIJK\20230628\apache-karaf-4.4.3/deploy|
Unable to start container for blueprint bundle
nl.bct.test.blaat/0.0.1.SNAPSHOT
org.osgi.service.blueprint.container.ComponentDefinitionException:
Error when instantiating bean saxonTransformerFactory of class
net.sf.saxon.TransformerFactoryImpl
        at 
org.apache.aries.blueprint.container.BeanRecipe.wrapAsCompDefEx(BeanRecipe.java:362)
~[?:?]
        at 
org.apache.aries.blueprint.container.BeanRecipe.getInstanceFromType(BeanRecipe.java:352)
~[?:?]
        at 
org.apache.aries.blueprint.container.BeanRecipe.getInstance(BeanRecipe.java:283)
~[?:?]
        at 
org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRecipe.java:685)
~[?:?]
        at 
org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:666)
~[?:?]
        at 
org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:81)
~[?:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
        at 
org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:90)
~[?:?]
        at 
org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:360)
~[?:?]
        at 
org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:190)
~[?:?]
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:737)
~[?:?]
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:433)
~[?:?]
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:298)
~[?:?]
        at 
org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:335)
~[?:?]
        at 
org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:288)
~[?:?]
        at 
org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:284)
~[?:?]
        at 
org.apache.aries.blueprint.container.BlueprintExtender.modifiedBundle(BlueprintExtender.java:274)
~[?:?]
        at 
org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:500)
~[?:?]
        at 
org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:433)
~[?:?]
        at 
org.apache.aries.util.tracker.hook.BundleHookBundleTracker$AbstractTracked.track(BundleHookBundleTracker.java:725)
~[?:?]
        at 
org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.bundleChanged(BundleHookBundleTracker.java:463)
~[?:?]
        at 
org.apache.aries.util.tracker.hook.BundleHookBundleTracker$BundleEventHook.event(BundleHookBundleTracker.java:422)
~[?:?]
        at 
org.apache.felix.framework.util.SecureAction.invokeBundleEventHook(SecureAction.java:1384)
~[?:?]
        at 
org.apache.felix.framework.EventDispatcher.createWhitelistFromHooks(EventDispatcher.java:730)
~[?:?]
        at 
org.apache.felix.framework.EventDispatcher.fireBundleEvent(EventDispatcher.java:485)
~[?:?]
        at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4847)
~[?:?]
        at org.apache.felix.framework.Felix.startBundle(Felix.java:2363) ~[?:?]
        at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:1006)
~[?:?]
        at 
org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1260)
~[?:?]
        at 
org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1233)
~[?:?]
        at 
org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:520)
~[?:?]
        at 
org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:365)
~[?:?]
        at 
org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:316)
~[?:?]

 Caused by: java.lang.NoClassDefFoundError: org/xml/sax/ext/EntityResolver2
        at 
net.sf.saxon.lib.CatalogResourceResolver.<init>(CatalogResourceResolver.java:46)
~[?:?]
        at net.sf.saxon.Configuration.init(Configuration.java:367) ~[?:?]
        at net.sf.saxon.Configuration.<init>(Configuration.java:230) ~[?:?]
        at 
jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method) ~[?:?]
        at 
jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
~[?:?]
        at 
jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
~[?:?]
        at 
java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
~[?:?]
        at java.lang.reflect.ReflectAccess.newInstance(ReflectAccess.java:128)
~[?:?]
        at 
jdk.internal.reflect.ReflectionFactory.newInstance(ReflectionFactory.java:347)
~[?:?]
        at java.lang.Class.newInstance(Class.java:645) ~[?:?]
        at net.sf.saxon.Configuration.newConfiguration(Configuration.java:246)
~[?:?]
        at net.sf.saxon.s9api.Processor.<init>(Processor.java:69) ~[?:?]
        at 
net.sf.saxon.jaxp.SaxonTransformerFactory.<init>(SaxonTransformerFactory.java:59)
~[?:?]
        at 
net.sf.saxon.TransformerFactoryImpl.<init>(TransformerFactoryImpl.java:42)
~[?:?]
        at 
jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method) ~[?:?]
        at 
jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
~[?:?]
        at 
jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
~[?:?]
        at 
java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
~[?:?]
        at java.lang.reflect.Constructor.newInstance(Constructor.java:480)
~[?:?]
        at 
org.apache.aries.blueprint.utils.ReflectionUtils.newInstance(ReflectionUtils.java:369)
~[?:?]
        at 
org.apache.aries.blueprint.container.BeanRecipe.newInstance(BeanRecipe.java:839)
~[?:?]
        at 
org.apache.aries.blueprint.container.BeanRecipe.getInstanceFromType(BeanRecipe.java:350)
~[?:?]
        ... 31 more
Caused by: java.lang.ClassNotFoundException:
org.xml.sax.ext.EntityResolver2 not found by
org.apache.servicemix.bundles.xmlresolver [288]
        at 
net.sf.saxon.lib.CatalogResourceResolver.<init>(CatalogResourceResolver.java:46)
~[?:?]
        at net.sf.saxon.Configuration.init(Configuration.java:367) ~[?:?]
        at net.sf.saxon.Configuration.<init>(Configuration.java:230) ~[?:?]
        at 
jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method) ~[?:?]
        at 
jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
~[?:?]
        at 
jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
~[?:?]
        at 
java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
~[?:?]
        at java.lang.reflect.ReflectAccess.newInstance(ReflectAccess.java:128)
~[?:?]
        at 
jdk.internal.reflect.ReflectionFactory.newInstance(ReflectionFactory.java:347)
~[?:?]
        at java.lang.Class.newInstance(Class.java:645) ~[?:?]
        at net.sf.saxon.Configuration.newConfiguration(Configuration.java:246)
~[?:?]
        at net.sf.saxon.s9api.Processor.<init>(Processor.java:69) ~[?:?]
        at 
net.sf.saxon.jaxp.SaxonTransformerFactory.<init>(SaxonTransformerFactory.java:59)
~[?:?]
        at 
net.sf.saxon.TransformerFactoryImpl.<init>(TransformerFactoryImpl.java:42)
~[?:?]
        at 
jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method) ~[?:?]
        at 
jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
~[?:?]
        at 
jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
~[?:?]
        at 
java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
~[?:?]
        at java.lang.reflect.Constructor.newInstance(Constructor.java:480)
~[?:?]
        at 
org.apache.aries.blueprint.utils.ReflectionUtils.newInstance(ReflectionUtils.java:369)
~[?:?]
        at 
org.apache.aries.blueprint.container.BeanRecipe.newInstance(BeanRecipe.java:839)
~[?:?]
        at 
org.apache.aries.blueprint.container.BeanRecipe.getInstanceFromType(BeanRecipe.java:350)
~[?:?]
        ... 31 more

With Camel version 3.20.4 I get a slightly different error message:

2023-07-03T16:21:21,139|ERROR|org.apache.aries.blueprint.container.BlueprintContainerImpl|72|||fileinstall-C:\TIJDELIJK\20230628\apache-karaf-4.4.3/deploy|
Unable to start container for blueprint bundle
nl.bct.test.blaat/0.0.1.SNAPSHOT
org.osgi.service.blueprint.container.ComponentDefinitionException:
Error when instantiating bean saxonTransformerFactory of class
net.sf.saxon.TransformerFactoryImpl
        at 
org.apache.aries.blueprint.container.BeanRecipe.wrapAsCompDefEx(BeanRecipe.java:362)
~[?:?]
        at 
org.apache.aries.blueprint.container.BeanRecipe.getInstanceFromType(BeanRecipe.java:352)
~[?:?]
        at 
org.apache.aries.blueprint.container.BeanRecipe.getInstance(BeanRecipe.java:283)
~[?:?]
        at 
org.apache.aries.blueprint.container.BeanRecipe.internalCreate2(BeanRecipe.java:685)
~[?:?]
        at 
org.apache.aries.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:666)
~[?:?]
        at 
org.apache.aries.blueprint.di.AbstractRecipe$1.call(AbstractRecipe.java:81)
~[?:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
        at 
org.apache.aries.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:90)
~[?:?]
        at 
org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:360)
~[?:?]
        at 
org.apache.aries.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:190)
~[?:?]
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:737)
~[?:?]
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:433)
~[?:?]
        at 
org.apache.aries.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:298)
~[?:?]
        at 
org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:335)
~[?:?]
        at 
org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:288)
~[?:?]
        at 
org.apache.aries.blueprint.container.BlueprintExtender.createContainer(BlueprintExtender.java:284)
~[?:?]
        at 
org.apache.aries.blueprint.container.BlueprintExtender.modifiedBundle(BlueprintExtender.java:274)
~[?:?]
        at 
org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:500)
~[?:?]
        at 
org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.customizerModified(BundleHookBundleTracker.java:433)
~[?:?]
        at 
org.apache.aries.util.tracker.hook.BundleHookBundleTracker$AbstractTracked.track(BundleHookBundleTracker.java:725)
~[?:?]
        at 
org.apache.aries.util.tracker.hook.BundleHookBundleTracker$Tracked.bundleChanged(BundleHookBundleTracker.java:463)
~[?:?]
        at 
org.apache.aries.util.tracker.hook.BundleHookBundleTracker$BundleEventHook.event(BundleHookBundleTracker.java:422)
~[?:?]
        at 
org.apache.felix.framework.util.SecureAction.invokeBundleEventHook(SecureAction.java:1384)
~[?:?]
        at 
org.apache.felix.framework.EventDispatcher.createWhitelistFromHooks(EventDispatcher.java:730)
~[?:?]
        at 
org.apache.felix.framework.EventDispatcher.fireBundleEvent(EventDispatcher.java:485)
~[?:?]
        at org.apache.felix.framework.Felix.fireBundleEvent(Felix.java:4847)
~[?:?]
        at org.apache.felix.framework.Felix.startBundle(Felix.java:2363) ~[?:?]
        at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:1006)
~[?:?]
        at 
org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundle(DirectoryWatcher.java:1260)
~[?:?]
        at 
org.apache.felix.fileinstall.internal.DirectoryWatcher.startBundles(DirectoryWatcher.java:1233)
~[?:?]
        at 
org.apache.felix.fileinstall.internal.DirectoryWatcher.doProcess(DirectoryWatcher.java:520)
~[?:?]
        at 
org.apache.felix.fileinstall.internal.DirectoryWatcher.process(DirectoryWatcher.java:365)
~[?:?]
        at 
org.apache.felix.fileinstall.internal.DirectoryWatcher.run(DirectoryWatcher.java:316)
~[?:?]

 Caused by: java.lang.NoClassDefFoundError: org/xmlresolver/Resolver
        at 
net.sf.saxon.lib.CatalogResourceResolver.<init>(CatalogResourceResolver.java:46)
~[?:?]
        at net.sf.saxon.Configuration.init(Configuration.java:367) ~[?:?]
        at net.sf.saxon.Configuration.<init>(Configuration.java:230) ~[?:?]
        at 
jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method) ~[?:?]
        at 
jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
~[?:?]
        at 
jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
~[?:?]
        at 
java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
~[?:?]
        at java.lang.reflect.ReflectAccess.newInstance(ReflectAccess.java:128)
~[?:?]
        at 
jdk.internal.reflect.ReflectionFactory.newInstance(ReflectionFactory.java:347)
~[?:?]
        at java.lang.Class.newInstance(Class.java:645) ~[?:?]
        at net.sf.saxon.Configuration.newConfiguration(Configuration.java:246)
~[?:?]
        at net.sf.saxon.s9api.Processor.<init>(Processor.java:69) ~[?:?]
        at 
net.sf.saxon.jaxp.SaxonTransformerFactory.<init>(SaxonTransformerFactory.java:59)
~[?:?]
        at 
net.sf.saxon.TransformerFactoryImpl.<init>(TransformerFactoryImpl.java:42)
~[?:?]
        at 
jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method) ~[?:?]
        at 
jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
~[?:?]
        at 
jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
~[?:?]
        at 
java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
~[?:?]
        at java.lang.reflect.Constructor.newInstance(Constructor.java:480)
~[?:?]
        at 
org.apache.aries.blueprint.utils.ReflectionUtils.newInstance(ReflectionUtils.java:369)
~[?:?]
        at 
org.apache.aries.blueprint.container.BeanRecipe.newInstance(BeanRecipe.java:839)
~[?:?]
        at 
org.apache.aries.blueprint.container.BeanRecipe.getInstanceFromType(BeanRecipe.java:350)
~[?:?]
        ... 31 more
Caused by: java.lang.ClassNotFoundException: org.xmlresolver.Resolver
not found by org.apache.servicemix.bundles.saxon [282]
        at 
net.sf.saxon.lib.CatalogResourceResolver.<init>(CatalogResourceResolver.java:46)
~[?:?]
        at net.sf.saxon.Configuration.init(Configuration.java:367) ~[?:?]
        at net.sf.saxon.Configuration.<init>(Configuration.java:230) ~[?:?]
        at 
jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method) ~[?:?]
        at 
jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
~[?:?]
        at 
jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
~[?:?]
        at 
java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
~[?:?]
        at java.lang.reflect.ReflectAccess.newInstance(ReflectAccess.java:128)
~[?:?]
        at 
jdk.internal.reflect.ReflectionFactory.newInstance(ReflectionFactory.java:347)
~[?:?]
        at java.lang.Class.newInstance(Class.java:645) ~[?:?]
        at net.sf.saxon.Configuration.newConfiguration(Configuration.java:246)
~[?:?]
        at net.sf.saxon.s9api.Processor.<init>(Processor.java:69) ~[?:?]
        at 
net.sf.saxon.jaxp.SaxonTransformerFactory.<init>(SaxonTransformerFactory.java:59)
~[?:?]
        at 
net.sf.saxon.TransformerFactoryImpl.<init>(TransformerFactoryImpl.java:42)
~[?:?]
        at 
jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method) ~[?:?]
        at 
jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
~[?:?]
        at 
jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
~[?:?]
        at 
java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:499)
~[?:?]
        at java.lang.reflect.Constructor.newInstance(Constructor.java:480)
~[?:?]
        at 
org.apache.aries.blueprint.utils.ReflectionUtils.newInstance(ReflectionUtils.java:369)
~[?:?]
        at 
org.apache.aries.blueprint.container.BeanRecipe.newInstance(BeanRecipe.java:839)
~[?:?]
        at 
org.apache.aries.blueprint.container.BeanRecipe.getInstanceFromType(BeanRecipe.java:350)
~[?:?]
        ... 31 more

In the Camel 3.20.5 release notes I found the following entry:

BUG CAMEL-19095    Camel Karaf using buggy Saxon bundle with wrong imports
see https://issues.apache.org/jira/browse/CAMEL-19095


Could the ClassNotFoundException EntityResolver2 somehow be related to this bug?


Environment details:
Karaf version               4.4.3
OSGi Framework         org.apache.felix.framework-7.0.5

Java Virtual Machine   OpenJDK 64-Bit Server VM version 17.0.7+7
Vendor                        Eclipse Adoptium

Operating system            Windows 10 version 10.0

Camel (core) version        3.20.5 and 3.21.0


Kind regards,
Marc Ramachers
Software Engineer

BCT Enterprise Information Management
www.bctsoftware.com

Reply via email to