Hi, I'm using Camel 2.16.0 and trying to invoke a bean method using spring
xml and having some issues.  It seems like any time I try to invoke a bean
method with a camel message body, camel tries to pass it as a string to the
method (even though the method takes the class as an argument) I'm calling
even though the body type is correctly set to the java class type and the
body itself is a class.  I've called bean methods a lot from Camel and
don't remember this being normal behavior?  Or am I wrong?

Caused by: org.apache.camel.component.bean.ParameterBindingException: Error
during parameter binding on method: public java.lang.String
com.test.TestService.retrieve(com.test.bo.TestObject,java.util.Date,com.test.TestParam)
at parameter #0 with type: class com.test.bo.TestObject with value type:
class java.lang.String and value: com.test.bo.TestObject
        at
org.apache.camel.component.bean.MethodInfo$2.evaluateParameterValue(MethodInfo.java:582)
        ...
Caused by: org.apache.camel.NoTypeConversionAvailableException: No type
converter available to convert from type: java.lang.String to the required
type: com.test.bo.TestObject with value com.test.bo.TestObject
        at
org.apache.camel.impl.converter.BaseTypeConverterRegistry.mandatoryConvertTo(BaseTypeConverterRegistry.java:1
85)

I'm just calling the bean method like you normally would.  I can log the
value of a property of the java class in the body using a log statement
right before I do the invocation of the method.  I don't do anything
special when calling the method other than putting the first parameter as:
${body}

Is this by design in Camel and I never noticed?  If so, is there any way
around it?

Thanks for any help!
Ryan

Reply via email to