In that case are we isolating  just to string based methods for toD and
custom wont me supported?

On Mon, Feb 10, 2025, 1:05 PM Claus Ibsen <claus.ib...@gmail.com> wrote:

> Hi
>
> This is as designed when you use toD then you use the simple language that
> are literal/string based.
> Avoid all the method overload complexity and just use a new method name.
>
>
>
> On Mon, Feb 10, 2025 at 8:08 AM logesh <logeshro...@gmail.com> wrote:
>
> > Hi,
> >
> > We have another issue with camel bean and methid invocation  but this
> time
> > its on the bean menthod invocation  thats done thru toD uri. Calling a
> bean
> > method using the below snippet works when access the header stored
> > properties .the property1 in headers gets resolved to the custom class
> type
> > and gets called to the correct overloaded method  in the bean.
> >  <bean ref="bean-ref" method="method1(${body}, <custom class type>.class
> > ${headers[property1]})">
> >
> > But when the same bean is called thru the
> > The below snippet the property1 under headers is always resolved as
> string
> > and it ends up being called as a string parameter there by throwing
> method
> > invocation error.
> > <toD uri="bean-ref?method1(${body}, <custom class type>.class
> > ${headers[property1]})">
> >
> > The very purpose we are using toD  is for Dynamic routing to the required
> > bean reference there by limiting us to just configurations on the route
> > DSL.Any advise on this issue or fix is highly  appreciated.
> >
> > *Camel version:4.8.1*
> > *Springboot based app: 3.3.5*
> >
> > Thanks
> > Logeshwaran Devakar
> >
> >
> > On Fri, Jul 5, 2024, 9:02 PM logesh <logeshro...@gmail.com> wrote:
> >
> > > I am trying to use bean with reference and method call.The bean has
> > > overloaded methods and hence it is being called in this way.The below
> > > method call was populated with parameter type and value in reference to
> > the
> > > guidanct provided in  here.
> > >
> > >
> >
> https://camel.apache.org/manual/bean-binding.html#_declaring_parameter_type_and_value
> > >
> > > My bean spring DSL looks as below
> > >
> > > <bean ref=bean1 method="Sendmsg(java.lang.String.class ${body},
> > > Java.lang.String.class {{appsproperty.value}})"
> > >
> > > I get  ambiguous method invocation possible exception.
> > > On investigating further this was drilled down to issue happening
> during
> > > the matchmethod call in BeanInfo class under
> org.apache.camel.component.
> > >
> > > The matchmethod was calling the method splitsafequote method with 4
> > > parameters (input seperator trime:true and keepquote:true) in
> > > strignquotehelper class under org.apache.camel.util which splits the
> > > parameters and types.The problem was isolated to the type and value
> > > concatenated with space between them ignored.The flag
> > skipleadingwhitespace
> > > is set to true and is never changed which ignores the space and is
> missed
> > > in the parsing logic.
> > > This in turn breaks at the match method which looks for the indexof(32)
> > > which is for a whitespace and since it's not there it returns -1 and
> > there
> > > by breaking the whole purpose of passing parameter type and value.
> > >
> > > Camel version used :4.5.0
> > > Camel components:camel-bean and camel-util
> > >
> > > Please let know if this is a bug or if any missing configuration
> from.my
> > > side
> > >
> > > PS:I changed the flag to false and it works fine with the above bean
> > > method call
> > >
> > > Thanks
> > > Logeshwaran Devakar
> > >
> > >
> > >
> >
>
>
> --
> Claus Ibsen
> -----------------
> @davsclaus
> Camel in Action 2: https://www.manning.com/ibsen2
>

Reply via email to