Hi Claus, Yep, we're using 1.6 version since it's the one packaged with ServiceMix Camel component. :(
I'll modify the code to use hte Processor concept. Thanks a lot for the clarification. Cheers, - Jussi - On Fri, Oct 2, 2009 at 12:34 PM, Claus Ibsen <[email protected]> wrote: > On Fri, Oct 2, 2009 at 11:27 AM, Jussi Nummelin > <[email protected]> wrote: >> Hi, >> >> We're hitting a bit peculiar Camel problem. >> >> We have our Camel route defined like this: >> <bean id="enricher" class="SomeBean"/> >> >> <camelContext id="camelContext" useJmx="true" >> xmlns="http://activemq.apache.org/camel/schema/spring"> >> >> <route> >> <from uri="jbi:service:Notification"/> <!-- the "sender" endpoint, >> e.g. a file poller --> >> <bean ref="enricher" method="processExchange"/> >> <to uri="jbi:service:Test" /> >> </route> >> >> >> So in practice what we want to do is to "enrich" the message before >> giving it to another component. >> >> For some reason the call to our enricher bean fails with this message: >> org.apache.camel.component.bean.AmbiguousMethodCallException: >> Ambiguous method invocations possible: [public static void >> SomeBean.print(javax.xml.transform.Source), public void >> SomeBean.setDbServiceName(java.lang.String)] on the exchange: >> Exchange[JbiMessage: >> org.apache.servicemix.jbi.messaging.normalizedmessagei...@dbe4e5] >> >> Does this mean that what ever message we're passing is actually a >> String object and thus Camel is trying to select a suitable void >> xxx(String arg) type of method? As we have the method defined in the >> route, why is Camel overriding it? >> >> Our processing method signature is: >> public void processExchange(org.apache.camel.Exchange exchange); >> >> Any help appreciated. >> >> >> Cheers, >> - Jussi - >> > > I assume you are using Camel 1.x which have a bug where even the > method="xxx" does not always pick this method. > Its fixed in 2.0 and maybe the latest 1.x as well (cant remember). > > You can work around this by having a single method in your bean or use > a Processor instead. > > > -- > Claus Ibsen > Apache Camel Committer > > Open Source Integration: http://fusesource.com > Blog: http://davsclaus.blogspot.com/ > Twitter: http://twitter.com/davsclaus >
