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