So, the only solution is to have two methods with two different names as I mention in my first post.
Charles Moulliard Senior Enterprise Architect Apache Camel Committer ***************************** blog : http://cmoulliard.blogspot.com On Tue, Jul 14, 2009 at 11:03 AM, James Strachan <[email protected]>wrote: > How is Camel meant to decide which method you want; if they are both > annotated and both have the same name? > > 2009/7/14 Charles Moulliard <[email protected]>: > > Even If I add the annotation @Handler on the two methods with the same > name, > > the error is generated > > > > Exception: org.apache.camel.component.bean.AmbiguousMethodCallException: > > Ambiguous method invocations possible: [public java.util.List > > > com.xpectis.x3s.core.util.ServiceHelper.updateRequestStatus(java.lang.String,java.lang.String,java.util.List), > > public void > > > com.xpectis.x3s.core.util.ServiceHelper.updateRequestStatus(java.lang.String,java.lang.String,java.lang.String,org.apache.camel.Exchange)] > > > > Charles Moulliard > > Senior Enterprise Architect > > Apache Camel Committer > > > > ***************************** > > blog : http://cmoulliard.blogspot.com > > > > > > On Tue, Jul 14, 2009 at 10:27 AM, Claus Ibsen <[email protected]> > wrote: > > > >> On Tue, Jul 14, 2009 at 10:25 AM, Charles Moulliard< > [email protected]> > >> wrote: > >> > Hi, > >> > > >> > Is there any other workaround except renaming the method "updatStatus" > to > >> > avoid to have an error : AmbiguousMethodCallException. > >> > > >> > In my example, I would like to allow to have two methods with the same > >> name > >> > but having different input parameters and return type > >> > > >> > Here is the route that I want to use : > >> > > >> > from(file) > >> > .to(beanA) // Create Request > >> > .to(beanB) // parse request > >> > .to(queueA) > >> > > >> > from(queueA) > >> > .to(beanC) // validate request > >> > .to(beanD method="updateStatus") // update Status (input parameter : > Body > >> = > >> > Request.class, return type = void) > >> > .to(queueB) > >> > > >> > ... > >> > > >> > from(queueX) > >> > .to(beanX) > >> > .to(beanD method="updateStatus") // update Status (input parameter : > Body > >> = > >> > Report.class, Header "requestId" String request ID, return type = > void) > >> > > >> > Is it possible ? > >> > > >> > >> Add @Handle to the method you want Camel to choose. > >> > >> > >> > Regards, > >> > > >> > Charles Moulliard > >> > Senior Enterprise Architect > >> > Apache Camel Committer > >> > > >> > ***************************** > >> > blog : http://cmoulliard.blogspot.com > >> > > >> > >> > >> > >> -- > >> Claus Ibsen > >> Apache Camel Committer > >> > >> Open Source Integration: http://fusesource.com > >> Blog: http://davsclaus.blogspot.com/ > >> Twitter: http://twitter.com/davsclaus > >> > > > > > > -- > James > ------- > http://macstrac.blogspot.com/ > > Open Source Integration > http://fusesource.com/ >
