On Wed, May 9, 2012 at 8:49 AM, anaCortes <anquiroe...@hotmail.com> wrote:
> Hi all,
>
> I´m working with the Camel LDAP component. As we can read in the
> http://camel.apache.org/ldap.html LDAP page  "The result is returned in the
> Out body".
> I´ve seen in the code of LdapProducer.java (process method), that we only
> have this line related to the Out message:
> exchange.getOut().setBody(data);
>
> The *problem* here is that, only using this code line, we lose the IN
> headers and I need to keep them.
>
> I´ve tried to copy the In headers in the Out headers before calling the LDAP
> endpoint using: a processor, the properties exchange, ... but LDAP always
> gets this error:
> javax.naming.directory.InvalidSearchFilterException: Empty filter; remaining
> name 'ou=system'
>    at com.sun.jndi.ldap.Filter.encodeFilterString(Filter.java:37)
>    at com.sun.jndi.ldap.LdapClient.search(LdapClient.java:519)
>    at com.sun.jndi.ldap.LdapCtx.doSearch(LdapCtx.java:1965)
>    at com.sun.jndi.ldap.LdapCtx.searchAux(LdapCtx.java:1827)
>    at com.sun.jndi.ldap.LdapCtx.c_search(LdapCtx.java:1752)
>    at
> com.sun.jndi.toolkit.ctx.ComponentDirContext.p_search(ComponentDirContext.java:368)
>    at
> com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirContext.java:338)
>    at
> com.sun.jndi.toolkit.ctx.PartialCompositeDirContext.search(PartialCompositeDirContext.java:321)
>    at
> javax.naming.directory.InitialDirContext.search(InitialDirContext.java:248)
>    at
> org.apache.camel.component.ldap.LdapProducer.simpleSearch(LdapProducer.java:99)
>    at
> org.apache.camel.component.ldap.LdapProducer.process(LdapProducer.java:72)
>    at
> org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
>    at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
>    at
> org.apache.camel.processor.SendProcessor$2.doInAsyncProducer(SendProcessor.java:115)
>    at
> org.apache.camel.impl.ProducerCache.doInAsyncProducer(ProducerCache.java:285)
>    at
> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:110)
>    at
> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73)
>    at
> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99)
>
> I only need to add a dummy outHeader to get this LDAP error.
>
> In the end, *the solution* i´ve used to solve this problem is extending the
> LDAP component:
>   <bean id="ldap" class="xxx.ExtendedLdapComponent" />
>
> and i´ve added only this line before calling to the process method in the
> LdapProducer,
>   exchange.getOut().setHeaders(exchange.getIn().getHeaders());
>
> I don´t like this solution but it´s the only one i´ve found to solve it.
>
> Is this a bug in the LDAP Component or the idea of not keeping the headers
> is correct?
>

Yeah its most likely a bug. Please create a JIRA ticket
http://camel.apache.org/support


> Thanks
> Kind Regards,
>
> Ana Cortés.
>
>
>
>
>
> --
> View this message in context: 
> http://camel.465427.n5.nabble.com/LDAP-Component-lose-headers-tp5696602.html
> Sent from the Camel - Users mailing list archive at Nabble.com.



-- 
Claus Ibsen
-----------------
CamelOne 2012 Conference, May 15-16, 2012: http://camelone.com
FuseSource
Email: cib...@fusesource.com
Web: http://fusesource.com
Twitter: davsclaus, fusenews
Blog: http://davsclaus.blogspot.com/
Author of Camel in Action: http://www.manning.com/ibsen/

Reply via email to