Details
-
Bug
-
Resolution: Done
-
Major
-
fuse-7.8-GA
-
None
-
False
-
False
-
Low
-
%
-
Undefined
Description
The camel route uses "camel-ldif" component throws an exception "java.lang.IllegalArgumentException: factory" after installing "camel-ldif" feature. Here is detailed error stack trace:
org.apache.camel.RuntimeCamelException: org.osgi.service.blueprint.container.ComponentDefinitionException: Error when instantiating bean ldapConnection of class nullorg.apache.camel.RuntimeCamelException: org.osgi.service.blueprint.container.ComponentDefinitionException: Error when instantiating bean ldapConnection of class null at org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1826) ~[!/:2.23.2.fuse-780036-redhat-00001] at org.apache.camel.impl.PropertyPlaceholderDelegateRegistry.lookupByName(PropertyPlaceholderDelegateRegistry.java:52) ~[!/:2.23.2.fuse-780036-redhat-00001] at org.apache.camel.component.ldif.LdifProducer.getLdapConnection(LdifProducer.java:99) ~[?:?] at org.apache.camel.component.ldif.LdifProducer.processLdif(LdifProducer.java:106) ~[?:?] at org.apache.camel.component.ldif.LdifProducer.process(LdifProducer.java:72) ~[?:?]......Caused by: java.lang.IllegalArgumentException: factory at org.apache.mina.filter.codec.ProtocolCodecFilter.<init>(ProtocolCodecFilter.java:77) ~[!/:?] at org.apache.directory.ldap.client.api.LdapNetworkConnection.<init>(LdapNetworkConnection.java:232) ~[!/:?] at org.apache.directory.ldap.client.api.LdapNetworkConnection.<init>(LdapNetworkConnection.java:266) ~[!/:?] at org.apache.directory.ldap.client.api.DefaultLdapConnectionFactory.newUnboundLdapConnection(DefaultLdapConnectionFactory.java:116) ~[!/:?] at org.apache.directory.ldap.client.api.DefaultLdapConnectionFactory.newLdapConnection(DefaultLdapConnectionFactory.java:107) ~[!/:?] at sun.reflect.GeneratedMethodAccessor22.invoke(Unknown Source) ~[?:?] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_281] at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_281] at org.apache.aries.blueprint.utils.ReflectionUtils.invoke(ReflectionUtils.java:337) ~[?:?] at org.apache.aries.blueprint.container.BeanRecipe.invoke(BeanRecipe.java:835) ~[?:?] at org.apache.aries.blueprint.container.BeanRecipe.getInstanceFromFactory(BeanRecipe.java:296) ~[?:?] at org.apache.aries.blueprint.container.BeanRecipe.getInstance(BeanRecipe.java:279) ~[?:?] 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.create(AbstractRecipe.java:108) ~[?:?] at org.apache.aries.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:360) ~[?:?] at org.apache.aries.blueprint.container.BlueprintRepository.createInstance(BlueprintRepository.java:338) ~[?:?] at org.apache.aries.blueprint.container.BlueprintRepository.create(BlueprintRepository.java:152) ~[?:?] at org.apache.aries.blueprint.container.BlueprintContainerImpl.getComponentInstance(BlueprintContainerImpl.java:809) ~[?:?] at org.apache.camel.blueprint.BlueprintContainerRegistry.lookupByName(BlueprintContainerRegistry.java:48) ~[?:?] at org.apache.camel.impl.CompositeRegistry.lookupByName(CompositeRegistry.java:80) ~[!/:2.23.2.fuse-780036-redhat-00001] at org.apache.camel.impl.PropertyPlaceholderDelegateRegistry.lookupByName(PropertyPlaceholderDelegateRegistry.java:50) ~[!/:2.23.2.fuse-780036-redhat-00001] ... 22 more
Looks like that the "camel-ldif" feature is missing an artifact and after installing it:
mvn:org.apache.directory.api/api-ldap-net-mina/1.0.0
the camel route starts to work ok.
We need to update Fuse 7.8
./system/org/apache/camel/karaf/apache-camel/2.23.2.fuse-780036-redhat-00001/apache-camel-2.23.2.fuse-780036-redhat-00001-features.xml
file to add the "api-ldap-net-mina" artifact to the "camel-ldif" feature.